shell测试和流程控制

  1. shell流程控制和测试
    if 、while、for、case、read
  2. 文件测试
    -d:测试是否是为目录(Directory)
    [ -d /mnt ]
    -f:测试是否为文件(file)
    [ -f ./file ]

    -e:测试目录或文件是否存在(Exist)
    [ -e /mnt/file ]
    -r:测试当前用户是否具有读取权限(Read)
    [ -r ./file ]
    -x:测试当前用户是否可执行(Excute)该文件
    [ -x ./file ]
    -L:测试是否为符号链接(Link)文件
    [ -L ./file ]

  3. 数字比较
    格式:[ 整数1 操作符 整数2 ]
    -eq:等于(Equal)
    -nq:不等于(Not Equal)
    -gt:大于(Greater than)
    -lt:小与(less than)
    -ge:大于等于(Greater Equal)
    -le:小于等于(less Equal)

  4. 字符串测试
    1.格式:[ 字符串1 = 字符串2 ]
    [ 字符串1 != 字符串2 ]
    [ -z 字符串3 ]:字符串3为空

  5. 逻辑测试
    1.-a 或者&&:

if [ -d ./mnt ] && [ 2 -eq 3 ]
then
    echo "yes"
else
    echo "not"
fi
&&:只有第一个为真时才判断第二个逻辑
2.-o或者||:只有第一个为假时,才判断第二个逻辑
3.!:逻辑非
  1. for流程控制
    for i in a b c
    do

    done
    in后面可以是任意命令输出结果expr 2+3

    for((i=0;i<10;i++))
    do
    ….
    done
  2. while控制
while [ 2 -eq 3]
do
...
done

3.case流程控制

case i in
  1)
     ...
  ;;
  2)
     ...
  ;;
  *)
     ...
  ;;
esac

你可能感兴趣的:(linux-shell)