Bash Shell 流控制

本文详细介绍了Bash Shell的流控制结构,包括if条件判断、for循环、while循环、until循环、case语句以及select语句的使用,帮助读者理解和掌握Shell脚本编程中的流程控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • if——如果条件为真或者为假,执行一个或多个语句
  • for——按固定次数执行一个或者多个语句
  • while——如果条件为真或者为假,执行一个或多个语句
  • until——执行一个或多个语句直到条件为真或者为假
  • case——根据某个变量的值执行一个或者多个语句
  • select——根据用户的选择执行一个或者多个语句
if 条件
then
    语句
[elif    条件
    语句]
[else
    语句]
fi


如果是0(真),那么语句将被执行,但是如果不是0,而且有else字句的话,则执行else子句,之后跳转到fi后面的第一行代码。
一般情况下,linux程序在操作串操作成功时返回0,否则返回非0。$?返回最近执行命令的退出代码。

Note:if条件语句仅能测试推出代码,但是你可以使用[...]结构或者bash内置命令test来测试更为复杂的条件。[ 条件 ]返回一个代码,表明条件为真还是为假。
bash 提供的可用于测试的范围有35+种,可以用来测试,各种各样的文件属性以及比较字符串和整数。详细内容可参考bash手册

for value in list
do
    statements using $value
done

list是一个值列表,value是单个项

while  条件
do
    语句
done

这个语法的意思是,只要条件为真就执行语句到条件为假(直到程序或者命令返回非0值)
example:
declare -i idx
idx = 1
while [ $idx!=30 ]
do
    ................................
    idx=$idex+1
done

until(不推荐使用)

case 表达式 in
    模式1)
        语句;;
    模式2)
        语句;;
esac

;;等价于C语言的break
与switch不同的是,case语句允许对表达式和含有通配符表达式进行匹配

select value [in list]
do
    statement
done

select 允许你构造一个简单的菜单,并且轻松的响应用户的选择
example:
#!/bin/bash
IFS=:
PS3="choice?"

#clear the screen

select dir in $PATH
do
    if [ $dir ];then
        ls $dir
        echo " $dir"
    else
        echo "No such choice!"
    fi
    echo -e "\n Press ENTER to continue, Ctrl-C to quit"
    read
    clear
done



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值