Bashマニュアルから
$0
シェルまたはシェルスクリプトの名前に展開されます。これはシェルが初期化されるときに設定されます。Bashがコマンドファイルを使用して呼び出されると(39ページのセクション3.8「シェルスクリプト」を参照)、
$0
これはファイル名に設定されます。Bashがこのオプションで始まると
-c
(80ページの6.1節「Bash呼び出し」を参照)、$0
実行される文字列の後の最初の引数(存在する場合)に設定されます。それ以外の場合は、引数0で指定されたようにBashを呼び出すために使用されるファイル名に設定されます。
最初の2つのケースは理解していますが、最後のケースは理解していません。 「そうでない場合」と「Bashを呼び出すために使用されるファイル名」は、どういう意味ですか?
答え1
/bin/bash
Bashは、実行可能ファイル()を直接使用したり、リンクを使用するなど、さまざまな方法で呼び出すことができます/bin/sh
。 「そうでない場合」はこの場合を扱い、Bashを呼び出すために使用されるファイル名は-bash
などsh
です。/bin/sh
試してみると、次の内容が表示されます。bash
次に、prints echo $0
、次にprints 、など。bash
/bin/bash
echo $0
/bin/bash
確かにこれはshebangsにも当てはまりますが、おそらくそれが最初のケースです。