for循环
for arg in [list]
do
...
done
- 每个[list]中的元素都可能包含多个参数
for planet in "Mercury 36" "Venus 67" "Earth 93" "Mars 142" "Jupiter 483"
do
set $planet; echo $1,$2;
done
- 将一个变量放在for循环的[list]位置上
planets="Mercury Venus Earth Mars Jupiter"
for p in ${planets}
do
echo ${p}
done
- 在for循环的[list]中有通配符 (*和?), 那么将会发生通配(globbing), 也就是文件名扩展
#列出/etc/下所有文件
for p in /etc/*
do
echo ${p}
done
- 在for循环中省略in [list]部分,从命令行传递给脚本参数
while循环
while [condition]
do
...
done
- c风格while循环
LIMIT=10
a=1
while [ "$a" -le $LIMIT ]
do
echo -n "$a "
let "a+=1"
done
更简单写法
((a = 1)) # 双圆括号允许赋值两边的空格, 就像C语言一样.
while (( a <= LIMIT )) # 双圆括号, 变量前边没有"#34;
do
echo -n "$a "
((a += 1))
done
- 多条件while循环
while echo "prevar = $pre"; pre=$var1; [ "$var1" != end ];
do
echo "input var #1 (end to exit) "
read var1
echo "var #1 = $var1"
done
until
这个结构在循环的顶部判断条件, 并且如果条件一直为false, 那么就一直循环下去. (与while循环相反)
until [condition-is-true]
do
...
done
循环控制
- break命令用来跳出循环
break命令可以带一个参数. 一个不带参数的break命令只能退出最内层的循环, 而break N可以退出N层循环
- continue命令只会跳过本次循环
一个不带参数的continue命令只会去掉本次循环的剩余代码. 而continue N将会把N层循环的剩余代码都去掉, 但是循环的次数不变
case (in) / esac
case "$variable" in
$condition1" ) ...;;
$condition2" ) ...;;
esac
select
select variable [in list]
do
...
break
done
提示用户输入选择的内容(比如放在变量列表中). 注意: select命令使用PS3提示符, 默认为(#?)
本文暂时没有评论,来添加一个吧(●'◡'●)