bash << HEREDOC
bash here-docなどを使用すると、例外なくshebangラインなどが重複していると結論付けること#!/bin/bash -x
ができますか?
大胆にする必要がある場合は、重複し、新しいユーザーには、「次のコマンドセットはもともと既存のスクリプトで実行されていたので使用しないでください」という表示など、情報を整理するためにのみ使用できます。デュアルアンパサンドなどを1行で実行します。
専門家が何を言っているのか気になります。ここでドキュメントを使用すると、bash shebang行は実際に完全に重複していますか?
答え1
はい、この場合はそうです。
要約:ハッシュバンライン(「shebang」などとも呼ばれます)が、インタプリタを明示的に指定せずに実行される実行可能スクリプトにある場合にのみ必要です(バイナリ実行可能ファイルを実行するときと同様)。
コードの場合、ここのドキュメントにあるスクリプトを明示的に実行しましたbash
。コメントとして扱われるので、ハッシュバンを追加する必要はありません。
ここでは、ドキュメントスクリプトは視点したいようです-x
オプションセットとして実行#!/bin/bash -x
set -x
hash-bang 行は、実行可能なテキストファイルを実行するときに使用されます。この行はシステムの実行に使用するインタプリタを示し、オプションでそのインタプリタの引数を指定できます(-x
あなたの場合)。
あなたする後でスクリプトとして使用するファイルにこの文書を作成する場合は、ハッシュバンが必要です。たとえば、
cat >myscript.sh <<<END_OF_SCRIPT
#!/bin/bash
# contents of script
# goes here
END_OF_SCRIPT
これらのファイルは実行可能でなければなりません(chmod +x myscript.sh
)。しかし、bash
やはり、たとえば、次のように明示的にスクリプトを実行する場合です。
$ bash ./myscript.sh
または
$ bash -x ./myscript.sh
(または他のスクリプトでも同じように)ハッシュバンは必要なく、スクリプトを実行可能にする必要はありません。
それはすべてスクリプトの実行方法によって異なります。
Wikipediaのトピックも参照してください。シェルボーン。