この記事では、コメントアウトされた行でもシェルの置き換えを試みるのはなぜですか?

この記事では、コメントアウトされた行でもシェルの置き換えを試みるのはなぜですか?

ターミナルでASCIIアートがどのように見えるかを見たいです。

$ cat <<EOF                                                                                                                                                                                  
> #          ____         _
> #  _   _  / __/  ___ _ | |_
> # | | | |/ /    /  _` || __|
> # | |_| |\ \__ 

ベストアンサー1

これはbashよりも一般的です。 POSIXシェルでは、あなたのシェルEOFが呼び出されます。言葉、議論中ここのドキュメント:

文字がない場合言葉引用した場合、この文書のすべての行は、パラメータ拡張、コマンド置換、および算術拡張のために拡張する必要があります。この場合、<backslash>次のように表示されます。<backslash>二重引用符内(二重引用符を参照) ただし、二重引用符文字()は、または二重引用符が'"'表示されない限り、このマニュアルで特別に扱うべきではありません。"$()""``""${}"

引用は、一重引用符、二重引用符、またはバックスラッシュ文字を使用して行われます。 POSIX はここのドキュメントディスカッションで言及されています。引用する:

さまざまな引用メカニズムには、エスケープ文字、一重引用符、二重引用符が含まれます。ここにある文書は代替引用形式を表します。ここのドキュメント

欠落している文字の処理を理解するための鍵は、#ここの文書の定義です。

許可するリダイレクトシェル入力ファイルに含まれる行数

つまり、シェルはデータに何の意味も与えません(可能なパラメータ拡張などを除く)。リダイレクト別のプログラムでは:catシェルインタプリタではありません。リダイレクトする場合シェル結果は、シェルがデータに対して実行できるすべての操作になります。

おすすめ記事