12,982
回編集
(→while文) |
|||
244行目: | 244行目: | ||
条件の指定にはtestコマンド(または[]コマンド)を使用する場合が多いが、それ以外も条件として指定することができる。<br> | 条件の指定にはtestコマンド(または[]コマンド)を使用する場合が多いが、それ以外も条件として指定することができる。<br> | ||
<br> | <br> | ||
==== ファイルから読み込む ==== | |||
readコマンドを使用してlist.txtファイルの内容を読み込み、1行ずつ表示させる。<br> | readコマンドを使用してlist.txtファイルの内容を読み込み、1行ずつ表示させる。<br> | ||
以下のシェルスクリプトを実行すると、list.txtファイルの内容を1行ずつ読み込み、その内容が表示される。<br> | 以下のシェルスクリプトを実行すると、list.txtファイルの内容を1行ずつ読み込み、その内容が表示される。<br> | ||
252行目: | 252行目: | ||
ghi | ghi | ||
<br> | <br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/bash | #!/bin/bash | ||
259行目: | 259行目: | ||
echo "$line" | echo "$line" | ||
done < ./list.txt | done < ./list.txt | ||
# 出力 | # 出力 | ||
abc | abc | ||
def | def | ||
ghi | ghi | ||
</syntaxhighlight> | |||
<br> | <br> | ||
==== 無限ループ ==== | |||
条件にNULLコマンドである:(コロン)を指定すると、無限ループになる。<br> | 条件にNULLコマンドである:(コロン)を指定すると、無限ループになる。<br> | ||
NULLコマンド:は、何もせずに終了コード0(真)を返すので、条件が常に真となるため、無限ループになる。<br> | NULLコマンド:は、何もせずに終了コード0(真)を返すので、条件が常に真となるため、無限ループになる。<br> | ||
273行目: | 272行目: | ||
無限ループを終了させるには、Ctrlキー + Cキーで強制的に終了させるか、<br> | 無限ループを終了させるには、Ctrlキー + Cキーで強制的に終了させるか、<br> | ||
処理部分でif文またはcase文などの条件分岐で、<code>break</code>、<code>return</code>、<code>exit</code>コマンドを実行する。<br> | 処理部分でif文またはcase文などの条件分岐で、<code>break</code>、<code>return</code>、<code>exit</code>コマンドを実行する。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
while : | while : | ||
do | do | ||
# 処理 | # 処理 | ||
done | done | ||
</ | </syntaxhighlight> | ||
<br> | <br> | ||
以下の例では、無限ループにcase文(条件分岐)を組み込んでいる。<br> | 以下の例では、無限ループにcase文(条件分岐)を組み込んでいる。<br> | ||
287行目: | 286行目: | ||
[y]キーまたは[n]キー以外のキーを入力すると、<code>Push y or n key.</code>と表示する。<br> | [y]キーまたは[n]キー以外のキーを入力すると、<code>Push y or n key.</code>と表示する。<br> | ||
その後、[y]キーまたは[n]キーのいずれかを入力するように促すメッセージを表示して、処理を繰り返す。<br> | その後、[y]キーまたは[n]キーのいずれかを入力するように促すメッセージを表示して、処理を繰り返す。<br> | ||
< | <syntaxhighlight lang="sh"> | ||
#!/bin/bash | #!/bin/bash | ||
300行目: | 299行目: | ||
esac | esac | ||
done | done | ||
# 出力 | # 出力 | ||
Repeat? (y/n) :q ← yキーまたはnキー以外を入力 | Repeat? (y/n) :q ← yキーまたはnキー以外を入力 | ||
309行目: | 307行目: | ||
Repat? (y/n) :n ← nキーを入力 | Repat? (y/n) :n ← nキーを入力 | ||
Repeat end. | Repeat end. | ||
</syntaxhighlight> | |||
<br><br> | <br><br> | ||