在每個迭代中l(wèi)inux命令大全,變量VAR會包含列表中當前值。
在do和done之間可以是一條或多條命令。
list列表中使用中的規(guī)則與特殊情況:
1、單引號的特殊處理,使用轉(zhuǎn)義字符(反斜線)來將單引號轉(zhuǎn)義
使用雙引號來定義用到的單引號的值
for TEST in Idon\'t know if "this'll" work
echo "word:$TEST"
2、list可以定義成變量
LIST1='Alabama Alaska Arizona Shanghai Beijing'
LIST2=$LIST1" Shenzhen"
for STAT in $LIST2
echo "Have you ever visited $LIST2"
3、list參數(shù)可以定義成命令,即用反引號來執(zhí)行任何能產(chǎn)生輸出的命令,然后在for命令中使用該命令的輸出;
FILE=/home/test/states
for STATE in`cat $FILE `
echo "Visit beautiful $STAT"
/home/test/states 文件內(nèi)容:
4、list參數(shù)中可以用通配符,如用for命令來自動遍歷滿是文件的目錄
for FILE in /home/test/*
echo "$FILE is a directory"
elif [ -f "$FILE" ]
echo "$FILE is a file"
在linux中文件名包含目錄名和文件名是合法的,要容納這種值,所以用雙引號""將$FILE括起來。
4、bash用默認用空格、制表符來劃分list列表中的每個值。如果單獨的數(shù)據(jù)中有空格,那么也必須用雙引號括起這些值。
for TEST in China Shanghai"New York" "New Mexico"
echo "Not going to $test"
5、在shell腳本中臨時更改IFS環(huán)境變量的值來限制一下被bash shell當作字段分隔符的字符。
IFSOLD=$IFS#保留IFS變量的默認值
IFS=$'\n'#為IFS賦新值linux命令大全,使bash shell只能識別換行符。
使用冒號作為分隔符:IFS=:
使用換行符、冒號、分號和雙引號作為字段分隔符IFS=$'\n:;'"
shell 代碼部分,例如for命令等
IFS=$IFSOLD #恢復(fù)默認值
C語言風格的for命令 即for (( ))
格式:
for (( variable assignment; condition; iteration process ))
commands
variable assignment :變量賦值
condition:條件
iteration process:迭代過程
eg:
for (( i=1;i<=10;i++ ))
echo "the next number is $i"
C語言風格的for命令允許定義多個變量
for (( a=1,b=10;a<=10;a++,b-- ))