首页 > 代码库 > SHELL笔记7

SHELL笔记7

  1. 测试的结果为0或非0, 0表示真,非0表示假。

  2. test命令

    通常与if、while、until等语句一起使用。

    #test 表达式

    #test [ 表达式 ]  //[后面后空格, ]前面有空格 

  3. 文件属性测试表达式


    表达式说明
    -b file如果文件file存在且为块设备(Block speicial),则值为真
    -c file如果文件file存在且为字符设备(Character special),则值为真
    -r file如果文件file存在且为只读,则值为真
    -w file如果文件file存在且可写入,则值为真
    -x file如果文件file存在且可执行,则值为真
    -s file如果文件file存在且长度大于0,则值为真
    -d file如果file是一个目录,则值为真
    -f file如果文件file是一个普通文件,则值为真
    -e file如果文件存在,则值为真
  4. 测试示例


  5.   1 #! /bin/bash
      2 #filename:filee
      3 echo "Please enter the file name:"
      4 read FILENAME
      5 if test -e $FILENAME ; then
      6 ls -l $FILENAME
      7 else
      8 touch $FILENAME
      9 fi
  6. 测试数值


    选项说明
    n1 -eq n2n1 等于 n2,则为真
    n1 -ne n2n1 不等于 n2,则为真
    n1 -gt n2n1 大于 n2,则为真
    n1 -lt n2n1 小于 n2,则为真
    n1 -ge n2n1 大于等于 n2,则为真
    n1 -le n2n1 小于等于 n2,则为真
  7. 测试示例

  8.   1 #! /bin/bash
      2 #filename:filee
      3 echo "Please enter the first number:"
      4 read N1
      5 echo "Please enter the second number:"
      6 read N2
      7 if test $N1 -eq $N2 ; then
      8 echo "N1 == N2"
      9 else
     10 echo "N1 != N2"
     11 fi
  9. 测试字符串


    选项说明
    -z s1如果字符串s1的长度是0,则值为真
    -n s1 如果字符串s1的长度不为0,则值为真
    s1=s2如果字符串s1与字符串s2相等,则值为真
    s1!=s2如果字符串s1与字符串s2不等,则值为真
    s1如果字符串s1不是空串,则值为真
  10. 测试示例


  11.   1 #! /bin/bash
      2 #filename:filee
      3 echo "Please enter the first string:"
      4 read S1
      5 echo "Please enter the second string:"
      6 read S2
      7 if test $S1 = $S2 ; then
      8 echo "S1 == S2"
      9 else
     10 echo "S1 != S2"
     11 fi
  12. 测试逻辑运算符


    逻辑操作符说明
    -a二进制“与”操作符
    -o二进制“或”操作符
    !一元“非”操作符
  13. 测试示例


  14.   1 #! /bin/bash
      2 #filename:filee
      3 echo "Please enter the first string:"
      4 read S1
      5 echo "Please enter the second string:"
      6 read S2
      7 if test $S1 = $S2 -o $S1 = "abc" ; then
      8 echo "S1 == S2"
      9 else
     10 echo "S1 != S2"
     11 fi



SHELL笔记7