Shell编程及常用语法介绍

来源:互联网 发布:日本行知学园学费 编辑:程序博客网 时间:2024/05/16 05:42

1. 变量定义

    shell不要求变量要在文件的开头处定义.只要在使用之前定义即可.

    定义格式其实也是赋值:

       Variable=<value>

    注意: =号前后都是不能有空格的.

    如: FileName="Test.log"

 

     常用的一些变量

     $#: 表示命令行传入的参数个数;

     $@: 表示一个存储了所有参数的List;

     $1/$2/$3: 表示第1/2/3个参数.

 

2. 逻辑操作及比较操作运算符

    或 -o;  与:-a

    例子:

      if [ $DB1 != "DB1" -a $DB2 != "DB2" -a $DB3 != "DB3" ]; then
           echo "++++++++++++++++"
      fi

  

    比较符号:

    -eq/-ne/-gt/-ge/-lt/-le/>/>=/</<=/==/!=

    都是比较空间理解的:eq表示等于, g是大于,l是小于, t是than的缩写;

    例如:

        if [ $# -lt 2 ]; then

            commands;

        fi

      

    -z: 表示字符串为空,即长度为0

    -n: 表示字符串不为空;

     这些都是常用在if语句中用来判断比如某个变量是否为空..

   

 

3. 循环控制

   For语句语法:

   for arg in $list

   do

        command.....

   done

 

    While语句语法:

    while [conditions]

     do

           commands..

     done

 

4. 分支语句

    Case 语法:

    case "$var" in

        branch1)

           commands...

        ;;

        branch2)

           commands...

        ;;

        branch3)

           commands...

        ;;

   esac

    每个分支上的值可以是正则表达式.分支执行完毕后应当以;;符号来结束本分支.

    最后有一个反过来写的case表示case语句执行完毕.

    

5. 正则表达式

    *: 表示匹配0到多个前面的字符串;

    .: 表示匹配任何一个字符

    ^: 表示从头开始匹配

    $: 表示从后面开始匹配

    []: 表示匹配一组字符串:

        [xyz]: 匹配x, y, z

        [0-9a-z]: 匹配所有的数字及单个字母