Shell basic2

条件判断
  1. 整数测试:
    1. [ $A -eq $B ] :$A $B 的前后都有空格。等值为真
    2. [ $A -ne $B ] :$A $B 的前后都有空格。不等值为真
    3. [ $A -gt $B ] : >
    4. [ $A -lt $B ] : <
    5. [ $A -ge $B ] : >=
    6. [ $A -le $B ] : <=
  2. 文件测试:
    1. [ -e file ]:测试文件是否存在
    2. [ -f file ]:是否普通文件
    3. [ -d file ]:是否设备文件
    4. [ -r file ]:是否对当前用户可读
    5. [ -w file ]:可写
    6. [ -x file ]:可执行
  3. 字符串测试:
    1. [ $A == $B ]:
    2. [ $A != $B ]:
  4. 命令间的逻辑关系:有命令A 与B ,当命令顺利执行;返回值为真,否则反之.
    1. 当 A 为真时 &&  执行B
      • 当A为假,命令终止。
    2. 当 A 为假时 ||  执行B
      • 当A为真是,命令终止。
    3. A && B || C : 如果A顺利执行,那么接下来执行B,否则执行C。
      • 如果A顺利执行,那么执行B,如果B顺利执行则命令终止。
      • 如果A顺利执行,那么执行B,如果B执行报错则执行C。
      • 如果A执行报错,跳过B,执行C。
  5. Shell中进行算术运算:注意$a+$b=a+b 是字符。
    1. let c=$a +$b
    2. c=$[$a+$b]
    3. c=$(($a+$b))
    4. c=`expr $a + $b`
  6. 选择结构
    1. 条件选择结构
      • case SWITCH in
      • value 1)
        • statement...
        • ;;
      • value 2)
        • statement...
        • ;;
      • *)
        • statement ...
        • ;;
      • esac
      • 例子:
      • case $1 in
      • [0-9])
        • echo "A digit";;
      • [a-z])
        • echo "lower";;
      • [A-Z])
        • echo "upper";;
      • *)
        • echo "special";;
      • esac
    2. 条件判断控制结构
      • if condition1; then
        • statement ...
      • elseif conditon2; then
        • statement ...
      • elseif ...
      • else
        • statement ...
      • fi
      • 例:特点:可以跟多参数,无文件创建文件,有则统计程序运行该文件次数。
          •   1 #! /bin/bash
          •   2 #
          •   3 declare -i line=0
          •   4 while [ "$1" != "" ]; do
          •   5 if [ -e $1 ]; then
          •   6         echo "I m $1,and I am alive"
          •   7         line=`wc -l $1| cut -d" " -f1`
          •   8         let line=$[ $line + 1 ]
          •   9         echo "$line">>$1
          •  10         echo "I am $1,and I am visited $line times"
          •  11     else
          •  12         touch $1
          •  13         echo "fiel $1 created"
          •  14 fi
          •  15 shift
          •  16 done
          •  17 exit 0
  7. 循环:
    1. for 循环
      • for 变量 in 循环;do
      • 循环体
      • done
    2. while循环
      • while 条件;do
      • 循环体
      • done