分支两种 if 和 case ,循环三种 for until while....
1.if
if [ ]
then
...
elif
then
...
else
...
fi
没啥说的和C的差不多...就是别忘了 then...
2.case
case $Var in
a|b|c)
...
;;
*)
...
;;
esac
和switch的意思差不多,这个多了 | 表示或的关系,感觉更灵活了... 其中 ;; 两个分号和 C中的break意思基本相同,但是在shell中break有其他的含义,和C中得有些小区别
3.for
for loop in var1 var2 var3 var4 ...
do
echo &loop
done
变量用空格隔开,不能用“”把所有的变量括起来,要是括起来就是一个变量了,作为一个整串出现。
for loop in `command`
do
echo &loop
done
可以把某个命令的结果作为列表,列表的内容也使用空格隔开,然后使用每个部分进行循环....
4.until
until [ ]
do
...
done
这个C中是没有的,但是一般脚本语言里边都有,和while正好有点相反的意思,当条件满足的时候就不走循环了,而while是条件满足的时候才走循环...
过程是先判断条件,条件判断为假才进行第一次循环,如果为真则停止循环....
5.while
while [ ]
do
...
done
这个也没啥说的,判断条件为真则循环,为假则停止循环....
while read rr
do
echo $rr
done
条件也可以是 command...,这种读取标准输入作为rr的内容,一直到按下 Ctrl+c才会停止程序...
while read rr < file.txt
do
echo $rr
done
条件是read rr < file.txt,从file.txt中读取内容作为rr,只要文件中有内容就标志为真,但是这样书写,echo的结果将都是file.txt的第一行的内容...
下边的写法将是对file.txt中得每一行进行遍历...
while read rr
do
echo $rr
done < file.txt