For arg in list
Do
…
done
有限循环,次数取决于list元素的个数,内容取决于list元素的值
While […]
Do
…
Done
条件循环,当条件为真时,执行一次循环
Until […]
Do
…
done
条件循环,当条件为假时,才执行一次循环
Case arg in
… ) … ;;
… ) … ;;
Esac
条件分支,注意每个分支中,条件和结果用”)”分开,结束用两个封号”;;”
#! /bin/bash
for item in "a" "b" "c" "d" "e" "f"
do
echo "$item"
done
#######for result
#a
#b
#c
#d
#e
#f
a="abc def ghi jkl mno pqr"
for argu in `echo $a`
do
echo "$argu"
done
######for result
#abc
#def
#ghi
#jkl
#mno
#pqr
b=10
c=20
while [ "$b" -lt "$c" ]
do
echo "b=$b"
let "b=$b+1"
done
#######while result
#b=10
#b=11
#b=12
#b=13
#b=14
#b=15
#b=16
#b=17
#b=18
#b=19
b=10
c=20
while [ "$b" -lt "$c" ]
do
let "b=$b+1"
if [ "$b" -eq "13" ]
then
continue
fi
echo "b=$b"
done
#######while result
#b=11
#b=12
#b=14
#b=15
#b=16
#b=17
#b=18
#b=19
#b=20
while [ "$var" != "end" ]
do
echo "While input variable"
read var
done
until [ "$var" != "end" ]
do
echo "Until input variable"
read var
done
echo "Hit a key, then hit return"
read var
case "$var" in
"1" ) echo "var is 1" ;;
"2" ) echo "var is 2" ;;
* ) echo "var is other" ;;
esac
select var in "123" "456" "789"
do
echo "ok is $var"
break
done
1、for中的list可以用命令替换
2、read输入是var,而不是$var
3、select很直观,直接将list中的所有输出菜单样,但有待进一步。