- 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
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