中括号有两种使用方法: 用于比较操作符:比较两个值大小或者判断两个值是否相等。例如:
-eq:判断两个值是否相等(equal to),例如[ $a -eq $b ]-ne:判断两个值是否不相等(not equal to),例如[ $a -ne $b ]-lt:判断左边的值是否小于右边的值(less than),例如[ $a -lt $b ]-gt:判断左边的值是否大于右边的值(greater than),例如[ $a -gt $b ]-le:判断左边的值是否小于等于右边的值(less than or equal to),例如[ $a -le $b ]-ge:判断左边的值是否大于等于右边的值(greater than or equal to),例如[ $a -ge $b ]用于测试表达式:测试某个表达式是否成立。例如:
-f:判断某个文件是否存在并且是一个常规文件(regular file),例如[ -f file.txt ]-d:判断某个文件是否存在并且是一个目录(directory),例如[ -d dir ]-z:判断某个字符串是否为空(zero length),例如[ -z "$str" ]-n:判断某个字符串是否非空(not zero length),例如[ -n "$str" ]-e:判断某个文件或目录是否存在(exist),例如[ -e file.txt ]在多数Linux发行版中,测试表达式可以用中括号[]或者test命令实现,例如:test -f file.txt等价于[ -f file.txt ]。
需要注意,中括号中的空格很重要,空格缺少会导致语法错误。另外,在使用中括号[]时,要注意变量用双引号括起来,避免空值引起语法错误。
#!/bin/bash if [ -f file.txt ]; then echo "file.txt exists." elif [ -d dir ]; then echo "dir exists." else echo "file.txt and dir not found." fi
#!/bin/bash for i in 1 2 3 4 5; do echo "The value of i is: $i" done
#!/bin/bash j=0 while [ $j -lt 5 ]; do echo "The value of j is: $j" j=$((j + 1)) done
注意:在Shell中,变量类型默认为字符串,所以在进行算术操作时需要使用(...)运算符会将结果直接返回,例如:
本文作者:a
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!