subdir="joan joanna"
for subdir in $subdir;
doecho "building " $subdir;
done
結果:building joan
building joanna
結果正常。
subdir="1 2 3 4"
for subdir in $subdir;
doecho "building " $subdir;
done
結果:building 1
building 2
building 3
building 4
結果正常。
若在定義變數列表時沒加引號,就出現錯誤。如:
subdir=joan joanna
for subdir in $subdir;
doecho "building " $subdir;
done
執行出現錯誤,無法通過。
subdir=10
for subdir in $subdir;
doecho "building " $subdir;
done
結果:building 10
正常。
subdir=「10」
for subdir in $subdir;
doecho "building " $subdir;
done
結果:building 10
正常。
總結:定義值,隨後遍歷定義的值中,對於資料列表需要用引號引起來;單個資料是否加引號無所謂。
定義列表變數還有一種寫法:在in後直接寫出變數列表。
for subdir in joan joaaa;
doecho "building " $subdir;
done
結果正常:
building joan
building joaaa
若寫成:
for subdir in "joan joaaa"
doecho "building " $subdir
done
結果:building joan joaaa
沒有出現語法錯誤,但並沒有得到我們需要的結果。
總結:in 後的列表如果加" ",會將其看做乙個整體。
in後呼叫shell命令:
dir=
"/var"
cd
$dir
for
k
in
$(
ls
$dir)
do
echo
$k
done
結果:列出了/var目錄下的目錄或檔案,相當於在var目錄下ls
for k in $(seq 1 10)
doecho $k
done
結果列印了1~10
結論:對於for的物件,必須是乙個已知的資料列表。
這個列表可以是給定的值,也可以是命令執行
以後的,
也可以是呼叫shell函式得到的。
若將列表賦值給變數,在變數中遍歷需要在賦值時加「」,
否則會出錯
(單個資料無所謂),若資料在在in後
得到,加「」後就會把整個資料列表看成乙個整體。
Shell指令碼程式設計基礎之shell指令碼退出狀態碼
exit 在指令碼中本身是退出的作用 根據程式執行的結果,返回對應的狀態碼,幫助實現條件判斷 21 15 48 root c8 3 55 grep q root etc passwd echo grep q admin etc passwd echo grep q root abc echo gre...
Shell指令碼程式設計基礎之shell指令碼條件測試命令
注意 表示式前後必須有空白字元 05 19 35 root c8 3 55 help test test test 表示式 對條件表示式進行估值。根據 expr 表示式的估值以狀態 0 真 或 1 偽 退出。表示式可以是一元或者二元的。一元表示式通常用於檢測 檔案狀態。同時還有字串操作符和數字比較操...
shell指令碼之find
find pathname options print exec ok 引數pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的...