ubuntu 下基本shell编写

 程序必须以下面的行开始(必须方在文件的第一行):

#!/bin/sh 

           符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。

           当编辑好脚本时,如果要执行该脚本,还必须使其可执行。
     要使脚本可执行:
                    chmod +x filename
               然后,您可以通过输入: ./filename 来执行您的脚本。

注释:

         以#开头的句子表示注释,直到这一行的结束

变量:   变量名=值
          在shell编程中,所有的变量都由字符串组成,并且您不需要对变量进行声明。          eg: a = "Hello Carey!"   echo $a

          有时候变量名很容易与其他文字混淆 这样的情况下就使用{} 方法区别: eg: mun = 2  echo ' This num is ${mun}ber'

常用命令语法及功能:

           ls: 文件列表

           wc –l filewc -w filewc -c file:计算文件行数计算文件中的单词数计算文件中的字符数

          cp sourcefile destfile: 文件拷贝

          grep 'pattern' file: 在文件内搜索字符串比如:grep'searchstring' file.txt

          mv oldname newname : 重命名文件或移动文件

          rm file: 删除文件

          cat file.txt: 输出文件内容到标准输出设备(屏幕)上

           file somefile: 得到文件类型

           read var: 提示用户输入,并将输入赋值给变量

           dirname file: 返回文件所在路径比如:dirname /bin/tux将返回/bin


管道 (|) 将一个命令的输出作为另外一个命令的输入。

重定向:将命令的结果输出到文件,而不是标准输出(屏幕)。

          > 写入文件并覆盖旧文件
    >> 加到文件的尾部,保留旧文件内容。
    反短斜线
      使用反短斜线可以将一个命令的输出作为另外一个命令的一个命令行参数。


流程控制:::::

"if" 表达式 如果条件为真则执行then后面的部分:
       if ....; then
            ....
           elif ....; then
             ....
          else
           ....
      fi

      通常用" [ ]"来表示条件测试。注意这里的空格很重要。要确保方括号的空格。
              [ -f "somefile" ] :判断是否是一个文件
              [ -x "/bin/ls" ] :判断/bin/ls是否存在并有可执行权限
              [ -n "$var" ] :判断$var变量是否有值
              [ "$a" = "$b" ] :判断$a和$b是否相等
           可执行man test可以查看所有测试表达式可以比较和判断的类型。

case表达式可以用来匹配一个给定的字符串,而不是数字。
                case ... in
                     ...) do something here ;;
               esac

loop表达式:
                while ...; do
                      ....
               done

for 循环:

#!/bin/bash
 for i in $( ls );

  do
      echo item: $i
  done

局部变量:      局部变量的生命是有限的,请看下面的例子
#!/bin/bash
       HELLO=Hello
        function hello

       {
           local HELLO=World
           echo $HELLO
        }
       echo $HELLO
       hello
       echo $HELLO


test命令用法。功能:检查文件和比较值

1)判断表达式
if test  (表达式为真)
if test !表达式为假
test 表达式1 –a 表达式2                  两个表达式都为真
test 表达式1 –o 表达式2                 两个表达式有一个为真

2)判断字符串
test –n 字符串                                   字符串的长度非零
test –z 字符串                                    字符串的长度为零
test 字符串1=字符串2                    字符串相等
test 字符串1!=字符串2               字符串不等

3)判断整数
test 整数1 –eq 整数2                        整数相等
test 整数1 –ge 整数2                        整数1大于等于整数2
test 整数1 –gt 整数2                         整数1大于整数2
test 整数1 –le 整数2                         整数1小于等于整数2
test 整数1 –lt 整数2                          整数1小于整数2
test 整数1 –ne 整数2                        整数1不等于整数2

4)判断文件
test  File1 –ef  File2                            两个文件具有同样的设备号和i结点号
test  File1 –nt  File2                            文件1比文件2 新
test  File1 –ot  File2                            文件1比文件2 旧
test –b File                                           文件存在并且是块设备文件
test –c File                                           文件存在并且是字符设备文件
test –d File                                           文件存在并且是目录
test –e File                                           文件存在
test –f File                                            文件存在并且是正规文件
test –g File                                           文件存在并且是设置了组ID
test –G File                                           文件存在并且属于有效组ID
test –h File                                           文件存在并且是一个符号链接(同-L)
test –k File                                           文件存在并且设置了sticky位
test –b File                                           文件存在并且是块设备文件
test –L File                                           文件存在并且是一个符号链接(同-h)
test –o File                                           文件存在并且属于有效用户ID
test –p File                                           文件存在并且是一个命名管道
test –r File                                            文件存在并且可读
test –s File                                           文件存在并且是一个套接字
test –t FD                                             文件描述符是在一个终端打开的
test –u File                                           文件存在并且设置了它的set-user-id位
test –w File                                          文件存在并且可写
test –x File                                           文件存在并且可执行



算术操作
+
-
*
/
% (remainder)
关系操作
-lt (<)
-gt (>)
-le (<=)
-ge (>=)
-eq (==)
-ne (!=)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值