if 条件
if condition; then
#commands;
if
else if 和 else
if condition; then
#commands;
else if condition; then
#commands;
else
#commands;
if
if 和 else 语句的简洁技巧
[ condition ] && action;
#如果condition为真,则执行action[ condition ] || action;
#如果condition为假,则执行action
算术比较
[ $var -eq 0 ] #注意在 [ 或 ] 于操作数之间有一个空格
操作符有如下几种:
-
-eq
:等于 -
-ne
:不等于 -
-gt
:大于 -
-lt
:小于 -
-ge
:大于或等于 -
-le
:小于或等于
使用逻辑操作符结合多个条件进行测试
[ $var1 -ne 0 -a $var2 -gt 2 ] #使用逻辑与 -a
[ $var1 -ne 0 -o $var2 -gt 2 ] #使用逻辑或 -o
文件系统相关测试
-
[ -f $var ]
:如果给定的变量包含正常的文件路径或文件名,则返回真。 -
[ -x $var ]
:如果给定的变量包含的文件可执行,则返回真。 -
[ -d $var ]
:如果给定的变量包含是目录,则返回真。 -
[ -e $var ]
:如果给定的变量包含的文件存在,则返回真。 -
[ -c $var ]
:如果给定的变量包含的是一个字符设备文件的路径,则返回真。 -
[ -b $var ]
:如果给定的变量包含的是一个块设备文件的路径,则返回真。 -
[ -w $var ]
:如果给定的变量包含的文件可写,则返回真。 -
[ -r $var ]
:如果给定的变量包含的文件可读,则返回真。 -
[ -L $var ]
:如果给定的变量包含的是一个符号链接,则返回真。
字符串比较
-
[[ $str1 = $str2 ]]
:如果str1等于str2时,返回真。 -
[[ $str1 == $str2 ]]
:如果str1等于str2时,返回真。 -
[[ $str1 != $str2 ]]
:如果str1和str2不相同时,返回真。 -
[[ $str1 > $str2 ]]
:如果str1的字母序比str2大时,返回真。 -
[[ $str1 < $str2 ]]
:如果str1的字母序比str2小时,返回真。 -
[[ -z $str1 ]]
:如果str1包含的是空字符串,返回真。 -
[[ -n $str1 ]]
:如果str1包含的是非空字符串,返回真。
test 命令
test 命令可以用来执行条件检测。用 test 可以避免使用过多的括号
if [ $var -eq 0 ]; then echo "True"; fi
可以写成:
if test $var -eq 0 ; then echo "True"; fi
网友评论