![endif]-->!-->![endif]-->!-->![endif]-->!-->
Bash循环结构
一、for结构
For arg in list Do … done |
有限循环,次数取决于list元素的个数,内容取决于list元素的值
二、while结构
While […] Do … Done |
条件循环,当条件为真时,执行一次循环
三、until结构
Until […] Do … done |
条件循环,当条件为假时,才执行一次循环
四、case结构
Case arg in … ) … ;; … ) … ;; Esac |
条件分支,注意每个分支中,条件和结果用”)”分开,结束用两个封号”;;”
五、select结构
六、代码
#! /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中的所有输出菜单样,但有待进一步。