(望むよりUbuntu-OSXの互換性、使いやすさ、POSIXには#!/bin/shまたは#!/bin/bashを使用してください。)
私のスクリプトがBashシェルを使用するには、.bash
拡張機能を使用して実際にBashを呼び出すのですか、それともシステム構成または最初のshebang行に依存していますか?どちらも有効ですが、異なる場合はどちらが優先されますか?
.sh
「shell script」だけを表示し、最初の行で Bash シェル ( など#!/usr/bin/env bash
) を選択してスクリプトを終了するのか、最初の行の.bash
設定でスクリプトを終了するのかわかりません。 )。
Bashを呼び出したいです。
ベストアンサー1
.bash拡張子の使用が実際にbashを呼び出すかどうかは、システム構成/最初のshebang行によって異なります。
インタプリタを明示的に使用しない場合、呼び出されるインタプリタは次のようになります。「シェボン」スクリプトに使用されます(#!
-line、スクリプトファイルの最初の行でなければなりません)。
一方、インタプリタを明示的に使用する場合、インタプリタはスクリプトにどの拡張を提供するかは関係ありません。しかし、拡張機能は、それがどのタイプのスクリプトであるかを他の人に非常に明確に示すために存在します。
[sreeraj@server ~]$ cat ./ext.py
#!/bin/bash
echo "Hi. I am a Bash script"
.py
Bashスクリプトを拡張してもPythonスクリプトになるわけではありません。
[sreeraj@server ~]$ python ./ext.py
File "./ext.py", line 2
echo "Hi. I am a Bash script"
^
SyntaxError: invalid syntax
常にBashスクリプトです。
[sreeraj@server ~]$ ./ext.py
Hi. I am a Bash script