その場にセミコロン、改行、アンパサンドを残しておきたいです。必要。しかし、「正しい」方法は何ですか?それは単なるスタイル/個人的な好みの問題ですか、それとも他のものよりも優れていますか?
while true; do
cmd1
cmd2
cmd3
done
while true; do
cmd1;
cmd2;
cmd3;
done
2つ目はより多くのインク/電子を使用しますが、単にワイヤを接続するとまだ機能します。
while true; do cmd1; cmd2; cmd3; done
答え1
語彙分析器/パーサーはそれらがまったく異なるとは思わない。
線をランダムに接続することは決してなく、言葉にならないので、実際の問題を解決するものではありません。
したがって、すべての違いは人間が認識することです。
私は個人的に、各コマンドが構文に関連付けられていない限り、セミコロンなしで自分の行に明確に表示されるように勧めます。他のコードには、見逃す可能性のあるエラーが含まれる可能性が高いためです。 (初心者はセミコロンなど意味のない要素をランダムに散らすことになり、初心者のコードはバグが生じる可能性が高いからです。原因と結果の観点から見ると、構文的に重要でも明確でもない要素をコードに追加すると、すでに存在するものの後ろに隠された意図があるので、明らかに私の脳はこれを明示的に無視しなければならず、コードの実際の問題を見つけることができません。)
しかし、これは純粋に好みであり、「Sina Barra Personal Code Guide」を原則として扱わない限り、「正しい」ことはありません。
しかし、概して、一貫性は「私はそれが好き」という推論よりも優先されます。シェルスクリプトを作成する場合は、インデントといくつかの制限された構文の強調表示とチェックを実行するエディタを使用します。エディタが自動的に各行の末尾にセミコロンを追加するか、行にセミコロンが欠落しているとマークすることをお勧めします。しかし、行の1/3が他の行と異なる規則に従う場合を読むよりも悪いことはありません。脚本の内容と論理を学ぶのではなく、各行の構造を再び学ぶことに読者の注意を集中してください。