シェルスクリプトにおける反復処理
[履歴] [最終更新] (2016/02/20 22:05:37)
最近の投稿
注目の記事

for

sample.sh

#!/bin/sh

for i in a b c; do
    echo $i
done

ARR=(
    "abc"
    "xyz"
)
for e in "${ARR[@]}"; do
    echo $e
done

実行例

$ ./sample.sh
a
b
c
abc
xyz

while

sample.sh

#!/bin/sh

cnt=1
while [ $cnt -lt 5 ]; do  # [] はtestコマンドの略記法であり「test $cnt -lt 3」としても同じ意味。
    echo $cnt
    cnt=`expr $cnt + 1`
done


while :   # ':'はpythonでのpassに相当するコマンド
do
    echo 'looping...'
    # break
done

実行例

$ ./sample.sh
1
2
3
4
looping...
looping...
...

ファイルを読み込む

in.txt

line1
line2

sample.sh

#!/bin/sh
while read line
do
  echo $line
done < in.txt

実行例

$ ./sample.sh
line1
line2

コマンドラインで実行する場面では以下のように一行で表現します。

$ while read line; do echo $line; done < in.txt
関連ページ
    コマンドのエイリアスを登録する (update-alternatives) mybin という名前のコマンドを登録 sudo update-alternatives --install /usr/local/bin/mybin mybin /usr/bin/echo 10 sudo update-alternatives --install /usr/local/bin/mybin mybin