1.for語句
for ?var ?in ?list?
do?
? ? ? ? ? ?commands;
done
for ?test in ?Arizona ?Arkansas ? "New York" ?Colorado ?“this'll” ? ?//注意list寫法
? ?當列表中包含單引號時,這部分內(nèi)容需要用雙引號,以讓他們保持一個整體,默認是以空格作為分隔符,New York 是一個整體,中間有空格,也需要使用雙引號
do
? ? ? ? ?commands
done
每一次循環(huán)都把list中的下一個值賦給$test
list="Arizona? Arkansas Arizona? Arkansas"
list=$list" hello" ? //在原來的list上增加一個值
for state in $list ? //不需要冒號,從變量中獲取值
do
echo ?"Have ?you ever visited $state"
done
file="states" ? ?//這是跟腳本在同一個目錄下的一個文件
for state in $file
do
? echo "visit beautiful ?$state"
done
2.更改字段分隔符
bash shell會將 空格、制表符、換行符當作分隔符
file="states"? ? //這是跟腳本在同一個目錄下的一個文件
IFS.OLD=$IFS ? ?//先保存
IFS=$'\n' ? ?//表示把換行符作為分隔符,默認是空格,臨時修改
for state in $file
do
echo "visit beautiful ?$state"
done
IFS=$IFS.OLD ?//恢復
指定多個分隔符
IFS=$'\n':;" ? ?同時將換行\(zhòng)n 冒號 ?分號 ?雙引號 作為分隔符
3.用通配符讀取目錄
可以用for命令自動遍歷目錄中的文件
for ?file in /home/rich/test/* ? ? ? //注意*號
? ? ? ?if [ -d "$file" ] ? ? ? ? ? ? ? ?//注意引號
? ? ? then
? ? ? ? ? ? ? echo ?"$file is a ?directory"
? ? ?elif [ -f ?"$file" ]
? ? ?then?
? ? ? ? ? ? ? ? ? ? echo ?"$file is a file"
? ? fi
6.C語言風格的for命令
for (( a=1,b=10;a<10;a++,b--))
do
? ? ?echo ?"$a-$b"
done
7.while循環(huán)
while test command ? //[ $var1 -gt 0 ]
do
? ? commands;
done