はじめに
シェルスクリプトでの繰り返し構文
を紹介していきます。CやPHPなどと
わりと勝手違います。
主にfor文とwhile文について。CやPHP
などよりfor文向きの使い方とwhile文
向きの使い方がハッキリ出ている気が
します。
環境
Linux mintを使っています
for文
for文の基本構文
まず基本構文から
for 変数 in 値リスト do 処理 done
では実際に書いてみます
#!/bin/bash for val in 0 1 2 4 5 do echo $val done
C言語やPHP風に
やはりこういった書き方の方がしっくり
きますね。
#!/bin/bash for ((i=0; i<5; i++)) do echo "$i回目" done
seqコマンドを使って
seqコマンドを使うのも便利です。
コマンドをfor文に書くとき
コマンド
のように書きます
#!/bin/bash for i in `seq 1 10` do echo $i done
forとコマンドを組み合わせて
すこし実践的に
シェルスクリプトファイルがある
ディレクトリ内のファイル名を読み取り
テキストファイルに書き込みます。
#!/bin/bash for name in `ls` do #>>で追記モードでファイル出力 echo $name >> name.txt done
while文
基本構文
while コマンド do 処理 done
これが基本的な構文の形
テストコマンドを使って
readで標準入力の文字列を受け取って
okと一致するまで繰り返す
#!/bin/bash read word while [ "$word" != "ok" ] do echo "not good" read word done echo "you're good "
ほかのコマンドでwhile文を使う
前準備としてseqコマンドを使ってテキストファイルを作成する
$seq 0 2 20 > number.txt
ファイルの中は
つくったテキストファイルを読み込み一行ずつ出力
#!/bin/bash while read line do echo $line done < number.txt
CやPHP風に
これが一番すきかな
#!/bin/bash i=0 while ((i<10)) do echo $i ((i++)) done