$0
起動されたシェルスクリプト名(第0引数)を参照。
シェルスクリプトの引数は一パラメータ($1、$2・・・)によって受け渡されるが、そのシェルスクリプト名自体は$0にセットされる。シェルスクリプト内では$0を参照する事で自分自身のコマンド名を知る事ができる。なお、位置パラメータとは違って$0はシェル関数の呼び出し時には変化しません。
位置パラメータと同様、$0の参照の際にも、その値に*や?などのパス名展開の記号やスペースなどの区切り文字が含まれていても構わないように基本的にはダブルクォートで囲んで"$0"として参照するのが良い。
シェルの-cオプションの場合の$0の値の変更
やや特殊な例ですが、シェルを-cオプション付きで起動(-cの次の引数が直接コマンドとして解釈)した場合、子面戸の引数の後にさらに引数を付けると、これが$0の値としてセットされる。
下記の例では$0に「name」という値がセットされるため、echoコマンドによってnameと表示されます。
sh -c 'echo "$0"' name
name