shell编程 -- 判断、循环

判断语句
if [ condition ];then
    语句1
    语句2
    ...
fi
# or
if [ condition ]
then
	...
if

e.g.

#! /bin/bash
a=3
b=4
if [ $a -lt  $b ];then
        echo "a < b"
fi
单层if-else
if [ condition ]
then
    语句1
    语句2
    ...
else
    语句1
    语句2
    ...
fi

e.g

#! /bin/bash

a=3
if [ $a -gt 1 ];
then
        echo "a > 1"
else
        echo "a < 1"
fi
多层if-else-elif-else
if [ condition ]
then
    语句1
    语句2
    ...
elif [ condition ]
then
    语句1
    语句2
    ...
elif [ condition ]
then
    语句1
    语句2
else
    语句1
    语句2
    ...
fi

e.g.

#! /bin/bash

if [ $1 -gt 10 ];then
        echo "$1 > 10"
elif [ $1 -gt 5 ];then
        echo "$1 > 5"
elif [ $1 -gt 0 ];then
        echo "$1 > 0"
else
        echo "$1 <= 0"
fi

注意事项:

  • [ condition ] 中括号和条件判断式之间必须有空格
  • if后要有空格
case … esac形式
case $变量名称 in
    值1)
        语句1
        语句2
        ...
        ;;  # 类似于C/C++中的break
    值2)
        语句1
        语句2
        ...
        ;;
    *)  # 类似于C/C++中的default
        语句1
        语句2
        ...
        ;;
esac

e.g.

#! /bin/bash

a=10

case $a in
        1)
        echo '$a is 1'
        ;;
        2)
        echo '$a is 2'
        ;;
        3)
        echo '$a is 3'
        ;;
        *)
        echo '$a is *'
        ;;
esac

注意事项:

  • case行尾必须为单词“in”,每一个模式匹配必须以右括号“)”结束。
  • 双分号“;;“表示命令序列结束。
  • 最后的”*)”表示默认模式。
for…in…do…done
for var in val1 val2 val3
do
    语句1
    语句2
    ...
done

e.g.

#! /bin/bash

for i in 1 2 3 4;
do
        echo $i
done
# input: 1\n2\n3\n4\n
for ((…;…;…)) do…done
for ((expression; condition; expression))
do
    语句1
    语句2
done

e.g.

#! /bin/bash

for((i=1; i < 10; ++i));do
        echo "$i"
done
while…do…done循环
while condition
do
    语句1
    语句2
    ...
done

e.g.

#! /bin/bash

while read i;
do
        if (( $i == 1));then
        break;
        else
                echo "no"
        fi
done  
until…do…done循环
until condition
do
    语句1
    语句2
    ...
done

e.g.

#! /bin/bash

i=0
until (( i == 1));
do
        read i
done

break命令

  • 跳出当前一层循环,注意与C/C++不同的是:break不能跳出case语句。

continue命令

  • 跳出当前循环。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

golemon.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值