別のbashスクリプトAから調達しているbashスクリプトBがあるとします。Bには、変数と関数定義の束があります。 Aは主なドライバスクリプトです。 AとBの上に#!/ bin/bash行が必要ですか?もしあなたがそうしていてもしなければ、どうなるでしょう?あなたは(コマンド./script.sh
を持つなど)の実行可能ファイルとして直接スクリプトを実行する場合すべてのbashスクリプトにシバンが必要ですか?
答えて
シェバングは、バイナリ実行可能ファイルと同じ方法でオペレーティングシステムが実行されなければならないこれらのスクリプト、のためだけに必須です。別のスクリプトでソースを指定すると、シバンは無視されます。一方、
一方、スクリプトがソースになっているとしたら、最初にシバンを置くことは禁じられています。
シェバングが使用されています。この場合、実行可能な実行可能ファイルをオペレーティングシステムに通知します。
それは必要と例えばbash ./script.sh
を書いたり、スクリプトを調達します場合は効果がありませんではないです。
...またはスクリプトのソースを指定したとき: –
すでにbashプロンプトが表示されている場合、これは必須ではありません。スクリプトはbashとみなされます(他のシェルは通常、スクリプトも同様であると想定しています) –
あなたが特に任意の非SH互換機能を使用して、すべてのスクリプトでシェバングを使用する必要があります。例えばDebianに
、デフォルトシェルはダッシュ(bashのではない)です。 bash-only機能を使用していて、このスクリプトをbashで解釈するように指定していない場合、Linuxでも失敗する可能性があります。 SolarisまたはHP-UXではほぼ確実に失敗します。
ファイルが他のスクリプトのソースのみになる場合は、shebang行は省略できますが、実行可能アクセス権は設定しないでください。また、そのようなファイルの場合は、/ bin/shとの互換性を保つのがよいでしょう。
DashAsBinShを強くお勧めします。
- 1. Bashスクリプトのヘルプが必要
- 2. bashスクリプトとawkコマンドのヘルプが必要
- 3. PHP CLIスクリプトでシバンをダイナミックにする
- 4. echoを使ってbashスクリプトを生成する(シバン線の問題)
- 5. Bashスクリプトの構文エラー:オペランドが必要です(エラートークンは "=")
- 6. URLにドル記号が必要なbashスクリプトのカール要求
- 7. BASHスクリプトヘルプが必要です
- 8. `-e`スイッチはbashシバンから何を行うのですか
- 9. すべてのページでトリミングに関するスクリプトのヘルプが必要です。
- 10. には、OSのバージョンを確認するためのbashスクリプトが必要です
- 11. bashスクリプトでの文字列操作のヘルプが必要
- 12. bashスクリプトでgetentコマンドに参加する必要があります
- 13. すべてのページのYUIスクリプトをインポートする必要がありますか?
- 14. すべてのクラスでJSHintグローバルにエントリが必要ですか?
- 15. ベクトルのすべてのオブジェクトにコピーコンストラクタが必要ですか?
- 16. angular2 RC4のすべてのコンポーネントにROUTER_DIRECTIVEが必要ですか?
- 17. TypeScriptのすべてのインポートに* .d.tsファイルが必要ですか?
- 18. 整数式が必要です:Bash
- 19. スクリプト/ランナーをシバンとして持つrubyスクリプトの構文をチェックするには?
- 20. Init.dスクリプトに必要です
- 21. すべてのホバー状態にリンクが必要ですか?
- 22. すべてのIBOutletにプロパティが必要ですか?
- 23. すべてのmesosマスターに設定ファイルが必要ですか?
- 24. すべてのモジュールファイルにPromise.promisifyAll()が必要ですか?
- 25. すべてのAWS Node.jsアプリケーションにクラスタモジュールが必要ですか?
- 26. プロトタイプのセルにはすべてクラスが必要ですか?
- 27. すべてのクラスにtoStringメソッドが必要ですか?
- 28. すべてのdb:migrateにファイルが必要ですか?
- 29. すべてのテーブルにプライマリキーが必要ですか?
- 30. すべてのアクティビティにレイアウトが必要ですか?
ここで答えを得ることができますが、試しましたか? – jman