私は$?
はここで何を意味するのでしょうか?
if [ $val -eq $? ]
、のような文が含まれているシェルスクリプトに出くわしましたか
私は$?
はここで何を意味するのでしょうか?
if [ $val -eq $? ]
、のような文が含まれているシェルスクリプトに出くわしましたか
$?
は、最後に終了したコマンドのステータスを返します。 ステータス0は、すべてが正常に終了したことを示します。
また$
記号は、特殊な記号である - その場合に$val
ドルはどのような変数val
これは、前のコマンドの終了ステータスの値です。成功の場合は0
です。
によって保持された値を抽出しますか?ここですか?
$?終了ステータス... 0がデフォルトである「成功し」
bash# ls *.*
bash# echo $?
bash# 0
bash# ls /tmp/not/existing/
bash# echo $?
bash# 2
$#
=引数の数の最後の結果があります。回答は3
です。
[email protected]
=どのパラメータが渡されましたか。回答は1 2 3
です。
$?
=最後のコマンドが成功しました。回答は0
で、「はい」を意味します。
おそらくそれは私を気にするべきではありませんが、 "0 == True"ということは本当に私の歯車を粉砕するという事実です。 – jmracek
私はlinkが非常に有用であり、大きな答えであることがわかりました。それはサンプルとの明確な表現を含んでいます。
ls *.*
またはls
は同じ結果を生じることになります。意味は、現在のディレクトリに拡張子を持つ0個以上のファイルを示します。
echo $?
は終了ステータスを表示します。最後のコマンドから少なくとも1つのファイルが表示された場合、終了ステータスはゼロ(成功)になります。
正しくはありません: 'ls *。*'は現在のディレクトリの内容をフィルタリングし、ピリオドを含むファイルとディレクトリだけを表示します。ディレクトリの場合、コンテンツを表示します(実装によって異なる場合があります)。また、次のコマンドを見てください。 'mkdir test && cd test && ls; echo" $? "'は0を返します。しかし 'mkdir -m -r wo_dir && cd wo_dir && echo" test "> 1.txt && ls; echo" $? " 'はファイルが作成されていてもls:。:Permission deniedというメッセージとともに1を返します。 – artdanil
[ここにあなたの答えがある] [1]あなたに一致する可能性がある を問う[1]:http://stackoverflow.com/questions/7101995/what-does-if-eq-0- shell-scripts?answerertab = active#tab-top –
[ドル記号の特別なシェル変数とは何ですか?](http://stackoverflow.com/questions/5163144/what-are-the-special -dollar-sign-shell-variables) – hammar