美文网首页
Shell基石:分支判断

Shell基石:分支判断

作者: mincase | 来源:发表于2017-02-04 09:38 被阅读10次
shell基础

方括号 [ ]

分支结构是 Shell 脚本中常见的结构。
分支判断的表达式一般是放在 [] 之间。例如:

#!/usr/bin/env bash
x=${1:-3}
if [ ! $x -gt 3 ]; then
    echo "${x} not gt 3"
elif [ $x -gt 3 ]; then
    echo "${x} gt 3"
fi
# 判断第一个参数(默认3)是否大于3

[ ] 之间,字符串比较采用:== != \< \>,例如:

# [ ab == abc ]; echo $?
1

# [ ab \< abc ]; echo $?
0

# [ ab != abc ]; echo $?
0

[ ] 之间,整数型的比较能采用的还有:-eq -ne -gt 等等的形式,如:

# [ 1 -eq 1 ]; echo $?
0

test 指令:

# test 1 -eq 1; echo $?
0

逻辑判断的与 -a 或 -o 非 !:

# [ 1 -le 0 -a 2 -ge 1 ]; echo $?
1

# [ 1 -le 2 -o 2 -ge 1 ]; echo $?
0

# [ ! 1 -le 0 -a 2 -ge 1 ]; echo $?
0

双中括号 [[ ]]:

在双中括号里面,与或表达式也可以这样表达:

# [[ 1 -le 0 && 2 -ge 1 ]]; echo $?
1

# [ 1 -le 0 ] && [ 2 -ge 1 ]; echo $?
1

# [[ 1 -le 2 || 2 -ge 1 ]]; echo $?
0

# [ 1 -le 2 ] || [ 2 -ge 1 ]; echo $?
0

双括号 (( )):

# ((1 ==1)); echo $?
0

# ((1 ==1 && 0 == 1)); echo $?
1

# ((1 ==1)) || ((0 == 1)); echo $?
0

switch分支:

#!/usr/bin/env bash
x=${1:-""}
case ${x} in
start)
    echo "start ok"
;; # 注意用双分号结束分支
stop)
    echo "stopok"
;;
restart)
    echo "restart ok"
;;
*)
    echo "no param"
;;
esac # 注意闭合标签

end.

相关文章

网友评论

      本文标题:Shell基石:分支判断

      本文链接:https://www.haomeiwen.com/subject/ufejittx.html