1行に書くときにシェルループの後に文字がないのはなぜですか;
?do
それは私の意味です。複数行にわたって作成すると、for
ループは次のようになります。
$ for i in $(jot 2)
> do
> echo $i
> done
一行で:
$ for i in $(jot 2); do echo $i; done
折り畳まれたすべての線が;
後ろに表示されます。とは別にこのdo
行にが含まれている場合は;
エラーです。おそらく私よりはるかにスマートな誰かがこれが正しいことだと思いますが、私はなぜそうなのかわかりません。これは私に一貫性がないようです。
ループにも同じですwhile
。
$ while something
> do
> anotherthing
> done
$ while something; do anotherthing; done
ベストアンサー1
これがコマンドの構文です。バラより複合コマンド
for name [ [in [words …] ] ; ] do commands; done
注意: do commands
ほとんどの人は簡単に読むことができるように、およびをdo
別々commands
の行に表示しますが、必須ではありません。次のように書くことができます。
for i in thing
do something
done
私はこの質問が特にシェルに関するものであることを知っており、bashのマニュアルに接続しました。シェルマニュアルにはこのような内容は書かれていませんが、シェルにはこう書かれています。Stephen Byrneが書いた記事バイトマガジンの場合。
スティーブンはこう言いました。
ㅏコマンドリスト
;
改行文字(セミコロン)で区切られた、または終わる1つ以上の単純なコマンドシーケンス。また、次の予約語はするそして完璧通常、改行文字または;
...が前に続きます。コマンドのリストは次のとおりです。する処刑される。