(Ubuntu-OSXの互換性と使いやすさおよびPOSIXについては、#!/ bin / shまたは#!/ bin / bashの使用を参照してください)
スクリプトでbashシェルを使用する場合、.bash拡張子を使用すると、実際にbashが呼び出されますか、それともシステム構成/1番目のシバン行に依存しますか。両方が有効であるが異なる場合、どちらが優先されますか?
スクリプトを.shで終了して「シェルスクリプト」を示し、最初の行でbashシェルを選択するかどうかがわかりません(例:#!/usr/bin/env bash
)または.bash(および1行目の設定)で終了するかどうか。 bashを呼び出したい。
承認された回答:
.bash拡張子を使用すると、実際にbashが呼び出されますか、それとも
システム構成/1番目のシバン行に依存しますか。
インタプリタを明示的に使用しない場合、呼び出されるインタプリタはshebang
によって決定されます。 スクリプトで使用されます。特にインタプリタを使用する場合、インタプリタはスクリプトにどの拡張子を付けるかを気にしません。ただし、この拡張機能は、スクリプトの種類を他の人にわかりやすくするために存在します。
[[email protected] ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a bash script"
.py
を参照してください bashスクリプトを拡張しても、Pythonスクリプトにはなりません。
[[email protected] ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a bash script"
^
SyntaxError: invalid syntax
その常にbash
スクリプト。
[[email protected] ~]$ ./ext.py
Hi. I am a bash script