web-dev-qa-db-ja.com

「$」とはどういう意味ですか?シェルで?

Debian6.0を使用しています。通常のコマンドライン引数は知っていますが、$?の意味が見つかりませんでしたか? Linuxシェルで$?が何を意味するのか、誰か知っていますか?

6
Ravi

bashではなくShell。 (Bashは、考えられるいくつかのシェルの1つにすぎません。ただし、最も一般的です)

これは、最後に実行されたコマンドの終了コードを意味します。

ここを参照してください: http://tldp.org/LDP/abs/html/othertypesv.html およびここ http://tldp.org/LDP/abs/html/exit-status .html

15
troelskn

このシェル変数「$?」をサポートするシェルの場合最近実行されたコマンドの戻りコードが含まれています。

したがって、終了時に1を返すプログラム「abc」を実行している場合

$ echo $?

「1」(戻りコード)を返します。

また、bashで利用できるだけでなく、他のシェルにもこの機能があります。

5
Marcin Cylke

最後に実行されたプログラムの戻りコード。

2
El Yobo

うわー、彼らはそれが最後に実行されたプログラムのリターンコードであると述べました、しかしそれが0より大きいならばそれがおそらくエラーを示していると誰も言及しませんでした。プログラムまたはスクリプトがエラーなしで実行されると、エラーなしで終了したことを示す値0が返されるのが一般的な方法です。すべてのプログラムとスクリプトがそうするわけではありませんが、そうすべきです。

$の値を確認していますか? Linuxコマンドを実行した後、エラーが発生したかどうかがわかります。各プログラムのドキュメントをチェックして、可能な戻り値を確認してください。値を返さないものもありますが、ほとんどは返します。スクリプトでは、「return X」で終了する必要があります。ここで、Xは値0 =良好/エラーなしであり、ゼロより大きい値は問題が発生したことを示します。使用するのが0または1の値だけであっても、それは良い習慣です。これにより、他のスクリプトは、最後のコマンドの成功または失敗に基づいて、次の行/コマンドを実行する必要があるかどうかを知ることができます。これにより、よりスマートなスクリプト作成とより優れた制御が可能になります。

0
user817752