Linux for迴圈之不帶列表for迴圈
阿新 • • 發佈:2019-01-26
for迴圈是Linux shell 中最常用的結構。for 迴圈有三種結構:一種結構是列表for迴圈;第二種結構是不帶列表for迴圈;第三種結構是類C風格的for迴圈。上篇博文講解了列表for迴圈,本篇博文重點看不帶列表for迴圈。不帶列表for迴圈執行時,由使用者指定引數和引數的個數。
不帶列表for迴圈基本格式
for variable
do
command
command
...
done
其中,do 和 done 之間的命令成為迴圈體,shell 會自動將命令列鍵入的所有引數依次組織成列表,每次將一個命令列鍵入的引數顯示給使用者,直至所有的命令列中的引數都顯示給使用者。這種結構的for迴圈和下面帶列表的for迴圈的結構功能完全一致:
for variable in "$*"
do
command
command
...
done
不帶列表的for迴圈同樣通過命令列來傳遞引數列表,上篇博文的ex8 for_ex8.sh 利用不帶列表for迴圈改寫指令碼
[[email protected] shellscript]$ cat for_ex8_1.sh
#!/bin/bash
echo "number of arguments is $#"
echo "What you input is :"
#使用命令列印陣列
for argument
do
echo "$argument "
done
[ [email protected] shellscript]$ sh for_ex8_1.sh 2 linux shell
number of arguments is 3
What you input is :
2
linux
shell
[[email protected] shellscript]$
指令碼for_ex8_1.sh 與 for_ex8.sh 的執行結果相同,不帶列表for迴圈結構比帶列表for迴圈結構簡潔易讀,但其只可從命令列來傳遞引數。所以,這種方式在shell程式設計中使用相對較少。