आपकी आज्ञा,
check=grep -ci 'text' file.sh
के रूप में खोल से व्याख्या की जाएगी "आदेश चला -ci
तर्क के साथ text
और file.sh
, और चर सेट check
मूल्य को grep
अपने वातावरण में"।
शेल चर में हाल ही में निष्पादित कमांड के निकास मूल्य को संग्रहीत करता है ?
। आप अपने मूल्य को इस तरह से अपने स्वयं के चर में असाइन कर सकते हैं:
grep -i 'PATTERN' file
check=$?
यदि आप इस मूल्य पर कार्य करना चाहते हैं, तो आप अपने check
चर का उपयोग कर सकते हैं :
if [ "$check" -eq 0 ]; then
# do things for success
else
# do other things for failure
fi
या आप एक अलग चर का उपयोग कर छोड़ सकते हैं और $?
सभी का एक साथ निरीक्षण कर सकते हैं:
if grep -q -i 'pattern' file; then
# do things (pattern was found)
else
# do other things (pattern was not found)
fi
(ध्यान दें -q
, यह grep
कुछ भी उत्पादन नहीं करने और कुछ मैचों से जल्द से जल्द बाहर निकलने का निर्देश देता है; हम वास्तव में यहाँ क्या मैचों में रुचि नहीं रखते हैं)
या, यदि आप केवल "चीजें करना चाहते हैं" जब पैटर्न नहीं मिला है:
if ! grep -q -i 'pattern' file; then
# do things (pattern was not found)
fi
$?
किसी अन्य चर में बचत करना केवल तभी आवश्यक है जब आपको बाद में इसका उपयोग करने की आवश्यकता होती है, जब मूल्य $?
को अधिलेखित कर दिया गया है, जैसे कि
mkdir "$dir"
err=$?
if [ "$err" -ne 0 ] && [ ! -d "$dir" ]; then
printf 'Error creating %s (error code %d)\n' "$dir" "$err" >&2
exit "$err"
fi
उपरोक्त कोड स्निपेट में, परीक्षण $?
के परिणाम द्वारा ओवरराइट किया जाएगा [ "$err" -ne 0 ] && [ ! -d "$dir" ]
। यहां इसे सहेजना वास्तव में केवल आवश्यक है अगर हमें इसे प्रदर्शित करने और इसके साथ उपयोग करने की आवश्यकता है exit
।
$?
कमांड समाप्त होने के बाद सही जांच कर सकते हैं ।