जवाबों:
आपको 0 या 1. मिलता है।
bash-4.2$ test 4 -lt 6
bash-4.2$ echo $?
0
bash-4.2$ test 4 -gt 6
bash-4.2$ echo $?
1
अपडेट : बाद में उपयोग के लिए एक्जॉस्टकोड स्टोर करने के लिए, बस इसे एक वैरिएबल पर असाइन करें:
bash-4.2$ test 4 -lt 6
bash-4.2$ first=$?
bash-4.2$ test 4 -gt 6
bash-4.2$ second=$?
bash-4.2$ echo "first test gave $first and the second $second"
first test gave 0 and the second 1
$?
चर में रखा गया है - कम से कम जब तक यह आपके द्वारा निष्पादित अगले कमांड द्वारा अधिलेखित नहीं हो जाता है।
$PIPESTATUS
$?
pipefail
if test 4 -lt 6; then echo test succeeeded; else echo test failed; fi
यदि आप बाहर निकलने के कोड के बजाय मानक आउट पर तुलना का परिणाम चाहते हैं, तो आप expr(1)
कमांड का उपयोग कर सकते हैं :
$ expr 4 '<=' 6
1
ध्यान देने योग्य दो बातें:
test
। test
सच के लिए 0 लौटाता है (जो निकास कोड के लिए मानक है), लेकिन expr
सच के लिए 1 प्रिंट करता है।test
शेल बिल्टिन है, जो कि कोरुटिल्स पैकेज से test
और expr
निष्पादक की तुलना में काफी तेज (मेरी मशीन पर लगभग 50 गुना) है ।
आप निम्न कमांड में टाइप कर सकते हैं:
echo $(test -e myFile.txt) $?