Shell控制结构

shell控制结构

if

语句格式:

#简单的if语句
if condition
then
    statements
fi

#带有elseif语句
if condition
then
    statements
else
    statements
fi

#带有elif也就是else ifif语句
if condition
then
    statements
elif condition
then
    statements
else
    statements
fi

如果你想简化,不写那么些行,可以把 then 放到 ifelif 里:

if condition;then
    statements
elif condition;then
    statements
fi

下面是一个例子:

#!/bin/bash

echo "你叫小李吗?敲Y是,敲N不是"
read answer
if [ "$answer" = "Y" ];then
    echo "是啊,我是小李"
elif [ "$answer" = "N" ];then
    echo "不是,你找错人了"
fi

sleep 2
exit 0

注意:

  • 因为 answer 可能为空,所以需要用双引号括起,否则如果 answer 是空,会解析成 if [ = "Y"],结果bash会报test出现语法错误。
  • [ ] 等价于 test,也就是说 [ "$answer" = "Y" ] 等价于 test "$answer" = "Y"

for

语句格式:

#python里的链表,in右边是链表
for item in item1 item2 item3[...]
do
    #下面的语句可以引用item变量
    statements
done

举个例子

for name in "小王" "小李" "小张"
do
    echo $name "来了,快跑!"
done
#该脚本会找出当前目录所有后缀为sh的文件,并显示数量

#count用于计数
count=0
for file in $(ls *.sh);do
    echo $file
    count=$(($count+1))
done
echo $count

三步当作两步走
cd /var/log
ls -il
可以并作一个语句:cd /var/log;ls -il
所以
for item in item1 [...];do
....

while

语句格式:

while condition
do
    statments
done

举个例子

# 1到100的所有自然数的和
total=0
num=1
while [ $num -le 100 ];do
    total=$(($total+$num))
    num=$(($num+1))
done

提示:
$(()) 用于简单的数学算法,优于使用expr,因为expr会启用另一个shell,效率低。

until

类似于while,只不过当条件不成立时才进入循环,条件成立时终止循环。
举个栗子:

#当有simon用户登陆时,才打铃、提示欢迎信息
until who|grep 'simon'>/dev/null;do
    sleep 60#60秒检查一次
done

echo \\a#打铃
echo "哈,欢迎你"#欢迎信息
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值