問題ID: 21699 シェルスクリプト(while.sh)の例について
- フォーラムは新サイトへ移行しました。
- このフォーラムではゲスト投稿が禁止されています
ゲスト
投稿数: 0
シェルスクリプト(while.sh)の例の記述内
3行目 while [ $NUM -le 3 ];
一番最後の記載に文字があり、
私にはセミコロン(;)に見えるのですが
セミコロン(;)の記載が必要でしょうか。
ご回答をお願いします。
3行目 while [ $NUM -le 3 ];
一番最後の記載に文字があり、
私にはセミコロン(;)に見えるのですが
セミコロン(;)の記載が必要でしょうか。
ご回答をお願いします。
arashi1977
居住地: 広島
投稿数: 1715
引用:えー、ぶっちゃけいうとなくても大丈夫です。
逆に、あっても大丈夫です。
シェルスクリプトと言っても結局bash上で実行されるので、そのままやってみるとわかりやすいです。
私の環境でやってみます。
セミコロンなしでも、ちゃんと実行されてますね。じゃあbashにはどう見えてるのかって言うと
改行位置とも異なる場所にセミコロンが入ってますね。これざっくり言えば、bashからみた処理の区切りです。
単独のセミコロンは「そんなコマンドはねぇ!」って怒られるのですが、区切り文字としてのセミコロンはOKなんです。
まぁこの実行例や出題にとってセミコロンは重要ではないので、豆知識として覚えとく、ぐらいでよいかと思います。
シェルスクリプト(while.sh)の例の記述内
3行目 while [ $NUM -le 3 ];
一番最後の記載に文字があり、
私にはセミコロン(;)に見えるのですが
セミコロン(;)の記載が必要でしょうか。
逆に、あっても大丈夫です。
シェルスクリプトと言っても結局bash上で実行されるので、そのままやってみるとわかりやすいです。
私の環境でやってみます。
$ echo $SHELL
/bin/bash
$ NUM=1
$ while [ $NUM -le 3 ]
> do
> echo $NUM
> let NUM=NUM+1
> done
1
2
3
$ history | tail -n 4
501 echo $SHELL
502 NUM=1
503 while [ $NUM -le 3 ]; do echo $NUM; let NUM=NUM+1; done
504 history | tail -n 4
単独のセミコロンは「そんなコマンドはねぇ!」って怒られるのですが、区切り文字としてのセミコロンはOKなんです。
$ ;
-bash: syntax error near unexpected token `;'
$ date;
2018年 4月16日 月曜日 10時20分21秒 JST