私は最近次のような声明を見ました(源泉;強調追加):
シェルスクリプトの場合、タブの使用は好みやスタイルの問題ではありません。言語はこう定義される。
私はこの言葉を理解しようとしています。もちろん少しゆるく表現されたのですが1 、これが言葉になるのか気になります。
具体的には、bashやzsh(私が頻繁にスクリプトを書く2つのシェル)の公式ドキュメントにタブを使用してソースコードをインデントするコマンドや提案に近いことがわかります。 (この文書のサポート段落を明示的に引用したいと思います。)
(FWIW、実際にbashとzshの両方が次のスクリプトを簡単に解釈できることを指摘したいと思います。いいえタブのインデントのみを使用してください。したがって、私はシェルのドキュメントがこの問題にまったく言及していても、強く推奨される以上に進むとは思いません。 )
1一方では、「シェルスクリプト」と「言語」の両方を意味します。
答え1
この声明は、本書の文脈で具体的に書かれていることが理解されます。この<<-
フォームは特に先行タブを削除します。:
リダイレクト演算子が"
<<-
"の場合、すべての前の<tab>文字は入力行と末尾の区切り文字を含む行から削除する必要があります。
その答えの2番目のスクリプトに注意してください。いいえタブを使用するときにタブを使用するには、インデントが必要だと作者が考えた場合は驚きます。