$ とはどういう意味ですか?シェルスクリプトでは?

$ とはどういう意味ですか?シェルスクリプトでは?

シェルスクリプトより「$?」という用語を見ました。これはどういう意味ですか?

答え1

$?最後に実行された前景パイプの終了状態に展開されます。よりBash マニュアルの特殊パラメータセクション

簡単に言えば最後のコマンドの終了状態だ。

答え2

CJMの答え正確ですが、$?シェルスクリプトで愚かな方法で使用できるので、警告したいと思います。多くの不正なシェルスクリプトには反復的なコードパターンがあります。

run_some_command
EXIT_STATUS=$?

if [ "$EXIT_STATUS" -eq "0" ]
then
    # Do work when command exists on success
else
    # Do work for when command has a failure exit
fi

可能であれば(時々読みやすさに影響を与える)、このケースを別の方法でコーディングする必要があります。

if run_some_command
then
    # Do work when command exists on success
else
    # Do failure exit work
fi

後者の使用法はより速く、一時変数に対応するシェルの変数名前空間を汚染することはなく、一般的に人がより読みやすく「肯定的な論理」を使用することをお勧めします。つまり、ほとんどの場合、認識可能な否定文なしで条件文を作成することです。簡単です。使用が$?大幅に削減されます。

答え3

$?- 最後に実行されたコマンドの終了状態。

$0- 現在のスクリプトのファイル名。

$#- スクリプトに提供されるパラメーターの数。

$$- 現在のシェルのプロセス番号。シェルスクリプトの場合、これを実行するプロセスID。

答え4

$?プロンプトが表示されたら、最後に実行されたコマンドの実行状況を提供します。値が「0」の場合、コマンド実行が成功したことを示し、「1」はコマンド実行が失敗したことを示します。

関連情報