「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典イメージぴよ画像「分かりそう」で「分からない」でも「分かった」気になれるLinuxコマンド辞典

while

スポンサーリンク

何するコマンド?

処理(指定したコマンドの実行)を繰り返すときに使うコマンド



書き方

while [ 【条件式】 ];do 【実行するコマンド】 done(sh系

while (【条件式】)
【実行するコマンド】
end(csh系



オプション

ありません。


補足事項

実際の使い方を見てみましょう。
まずはsh系からいきます。

例えば

while [ 1 ];do date;ls; sleep 3;clear; done

を実行すると

date
ls
sleep 3
clear

の4つのコマンドが繰り返し実行されます。

date」コマンドは「コンピュータの日時を表示・設定するときに使うコマンド」です。
ls」コマンドは「ファイルディレクトリの一覧を表示するときに使うコマンド」です。
sleep」コマンドは「処理を一定時間止めるときに使うコマンド」です。
clear」コマンドは「画面の表示内容を消すときに使うコマンド」です。

つまり、上記のコマンドを実行すると

1.現在時刻を表示
2.ファイル一覧を表示
3.3秒間そのまま
4.画面の表示内容を消す
5.1に戻る


となり、現在時刻とファイル一覧が3秒間隔のリアルタイムで更新されながら画面上に表示され続けます。

終了するときは

Ctrlキー+「c」のキー

を押してください。
止まります。

なお、今回は1行でまとめて書きましたが、複数行に分けて書くことも可能です。

while [ 1 ];do

まで書いてEnterキーを押すと、次の行のはじまりが

>

に なります。

この状態で

date [Enterキー]
ls [Enterキー]
sleep 3 [Enterキー]
clear [Enterキー]

入力して、最後に

done [Enterキー]

を入力すると、1行で書いたときと同じ結果になります。
実行直前の画面の表示内容は以下の通りです。

while [ 1 ];do
> date
> ls
> sleep 3
> clear
> done


これがsh系における「while」コマンドの使い方です。

今回は条件式に「1」を設定して無限ループにしましたが、その他の条件を指定することも できます。
書き方はシェルスクリプト内にwhile文を書くときと同じです。
具体的な内容は他のところで勉強してください。

次にcsh系における「while」コマンドの使い方を説明します。
細かい違いはありますが、基本的にはsh系と同じです。
例えば

while ( 1 )

まで書いてEnterキーを押すと、次の行のはじまりが

while?

に なります。

この状態で

date [Enterキー]
ls [Enterキー]
sleep 3 [Enterキー]
clear [Enterキー]

と入力して、最後に

end [Enterキー]

を入力すると、sh系で書いた例と同じ動きをします。
実行直前の画面の表示内容は以下の通りです。

while( 1 )
while? date
while? ls
while? sleep 3
while? clear
while? end


なお、頑張って調べたのですが、1行にまとめて書けませんでした。
できるかもしれませんが、私はやり方を知りません。

これがcsh系における「while」コマンドの使い方です。
基本的にはsh系と同じですね。

このように「while」コマンドは処理(コマンドの実行)を繰り返すときに使います。
例えば、ファイルが作成されたか(削除されたか、更新されたか)プロセスが終了したか、接続中のユーザは何人いるか、などなど、何かを監視するときに重宝するコマンドです。

気が向いたら、使い方をマスターしておいてください。
ちょっとだけですが、デキる人になった気分を味わえます。

スポンサーリンク


書籍画像