shell中的条件判断
判断一条命令是否执行成功,返回值为0表示成功,返回值不为0则表示失败,返回错误码。
$?表示上一个命令的返回码
用管道线连接在一起的命令以最后一个命令的返回码作为整条命令的返回码
复合逻辑:
&& ||注意是用0代表ture,用非0代表false
true和false:/bin/true返回值总为0 /bin/false返回值总不为0
test及方括号命令:
test与[功能相同,[要求最后一个命令行参数必须为]
功能:①文件特性检测
②字符串比较: == !=
注意:一定要在等号和不等号两侧加空格
③整数的比较:
复合条件:
eg. [ $level = 0] && level is zero
shell的命令组合:
可以集体管道和重定向或者当条件满足时执行若干个命令
①{}②()
区别:①{}在当前shell中执行一组命令,而()是在子shell中执行
②{ list; } 花括号是内部命令,后要加空格,如果多行并为一行最后要加分号,而圆括号是元字符,(list)
条件分支:
if condition
then list
elif condition
then list
else
list
fi
注:if和then不可直接合并成一行,要用;分割
case word in
pattern)
list1
;;
pattern) list2;;
esac
注:;;是一个整体,不得分开,也不得用空行替代。pattern与word使用shell文件名匹配规则进行匹配
# 注释
附:可以用./arg param1 param2 param3 来查看成功输入了哪些参数