1. 程式人生 > >Linux for迴圈之不帶列表for迴圈

Linux for迴圈之不帶列表for迴圈

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程式設計中使用相對較少。