forループのサンプル †シェルスクリプトのforループのサンプルを以下に記します。 関連記事 †
ある値からある値までのループ †例えばi=0からi=10までのループをしたい場合のシェルスクリプトサンプルを以下に記します。 #/bin/bash for i in `seq 0 10` do echo i=$i done seqコマンドに関しては以下のリンクの記事を参照してください。 以下のように記述することもできます。 #/bin/bash for i in {0..10} do echo i=$i done ファイルをリードし行単位でループする †テキストファイルを行単位でリードして処理をしたい場合のループは以下のように記述します。 以下のテキストファイルを行単位でリードする例を記します。 $ cat 1.txt hello world konnichiwa sekai #!/bin/bash for l in `cat 1.txt` do echo l=$l done 1行内にスペースが含まれる場合は上記(sample-3.sh)では意図した動作になりません。 以下のテキストファイルを行単位でリードする例を記します。(途中に半角スペースが含まれています。) $ cat 2.txt hello world konnichiwa sekai #!/bin/bash IFS_BACKUP=$IFS IFS=$'\n' for l in `cat 2.txt` do echo l=$l done IFS=$IFS_BACKUP コマンドから出力された文字列群をループ †内容的には上記と同じですがlsコマンドを使ってディレクトリのみ表示するサンプルスクリプトを以下に記述します。 以下のようなファイルとディレクトリが存在するlsコマンドの出力からディレクトリのみ表示します。 $ ls -F a.txt b.txt c.txt dir1/ dir2/ dir3/ ls -Fオプションに関しては以下のリンクの記事を参照してください。
#!/bin/bash for d in `ls -F | grep /$` do echo d=$d | tr -d '/' done 複数のキーワードを設定しキーワード分ループする †キーワードを指定すれば指定したキーワード分ループします。 #!/bin/bash for k in JPY USD RMB EUR do echo k=$k done 実行結果 $ ./sample-6.sh k=JPY k=USD k=RMB k=EUR |