shell语法(循环判断)

条件判断
  条件判断用测试命令来完成,根据命令退出码判断条件是否成立。
  常见命令:test和 [ ( [ ]要成对使用)
  逻辑真:0 退出码为0
  逻辑假:1 退出码为1

  常见测试选项

逻辑判断==!=<><=>=
整数测试-eq-ne-lt-gt-le-ge
字符串测试==(相等)!=(不相等)-z(为空)-n(不为空)
文件测试-d(目录文件)-f(普通文件)-b(块设备)-c(字符设备)

  输入一个整数,判断是否等于10

read x
[ $x -eq 10 ]
echo $?  #上一个命令的退出码,为真,返回0
#输入10  输出0
#输入20  输出1

  输入字符串hello并判断

read str
[ "X$str" == "Xhello" ]
echo $?

[ "X$str" != "Xhello" ]
echo $?

[ -z $str ]
echo $?

[ -n $str ]
echo $?
#输入 hello
#输出0 1 1 0

  多条件测试(用法同C的 ! && || )
    逻辑非 !
    逻辑于 -a
    逻辑或 -o

空语句
  :表示一个空语句,退出码为0
  也可以用true和false
if语句

read x

if [ $x -eq 10 ];then 
    echo "x=10"
elif [ $x -eq 20 ];then
    echo "x=20"
else
    echo "x=$x"
fi

|| 和 &&

read x
# &&相当于if...then...
[ $x -eq 10 ] && echo "x=10"
[ $x -eq 10 ] && {
    echo "x=10"
}

# ||相当于if not...then...
[ $x -eq 20 ] || echo "x!=10"
[ $x -eq 20 ] || {
    echo "x!=10"
}
#输入10
#输出
# x=10 x=10
# x!=10 x!=10

case语句

read x

case $x in     # case $1 in 取第一参数的值
    'start' | -s | -S)   # start)也可以
        echo "start..."
    ;;
    'stop')
        echo "stop..."
    ;;
    *)
        echo "default..."
    ;;
esac

类C循环
  (( ))中的运算和C一样

for ((i=0; i<=10; i++))
do
    echo "$i"
done
#打印0-10

for in 循环

#for x in {1..10}
#for x in {a..z}
#for x in {1..10} {a..z}
for x in {1..3}{4..6}
do
    echo $x
done
#输出
#14 15 16 24 25 26 34 35 36

while 循环

x=0
while [ $x -lt 10 ]
do
    echo $x
    let x++
    ((x++))
done
#输出 0 2 4 6 8

until 循环
  在条件成立之前,一直do…done

x=0
until [ $x -ge 10 ]
do 
    echo $x
    let x++
done
#输出0-10

几种死循环

#for ((;;))
#while :
until false
do
    echo "do it"
done

1-10求和

sum=0
str=''
for x in {1..10}
do
    [ -n "$str" ] && str+="+$x"
    [ -z "$str" ] && str=$x
    let sum+=x
    let x++
done
echo "$str=$sum"
#输出 1+2+3+4+5+6+7+8+9+10=55
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值