एक पंक्ति में एक चर को प्रतिध्वनित करने के लिए bash की आवश्यकता क्यों है?


12

वापस जाने की SOMETHING=1 && echo $SOMETHINGआवश्यकता क्यों है &&, वापस 1
क्यों नहीं SOMETHING=1 echo $SOMETHINGलौटती1


7
शर्म की बात है कि जो कोई भी आपके सवाल को खारिज कर दिया, विशेष रूप से रचनात्मक प्रतिक्रिया छोड़ने के बिना। यह एक वैध प्रश्न है, और जिस क्रम में बैश शब्द / पैरामीटर / चर / टिल्ड विस्तार और कमांड निष्पादन मुश्किल है। मैं आपको +1 दे रहा हूं।
स्पाइफ


तकनीकी रूप से, "इको 1" 0 रिटर्न करता है, और आउटपुट 1 है ... यह कहना है, "इको" स्थिति "0" से बाहर निकलता है, और तर्कों को रोकने के लिए प्रदर्शित करता है। मेरे लिए "1 रिटर्न" का वाक्यांश "एक्जिट स्टॉस" को लागू कर रहा था, "आउटपुट" नहीं, और पहली नज़र में थोड़ा भ्रमित था।
माइकल

जवाबों:


8

क्योंकि बैश वेरिएबल असाइनमेंट स्टेटमेंट की व्याख्या करने से पहले वेरिएबल एक्सपेंशन करता है। इसलिए, चूंकि SOMETHING को पहले परिभाषित नहीं किया गया था, आपकी आज्ञा बन जाती है ...

SOMETHING=1 echo ''

... तो निष्पादित हो जाता है।


क्या वैरिएबल एक्सपेंशन वैरिएबल सबस्टेशन के समान है?
जोएल

1
@ जोएलएल: सही
गॉर्डन डेविसन

0

निर्यात और एक ही समय में गूंज

root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# echo $SOMETHING
1
root@kali:~# unset SOMETHING
root@kali:~# echo $SOMETHING

root@kali:~# echo ${SOMETHING=1}
1
root@kali:~# 

एक और नासमझ उदाहरण xD

root@kali:~# echo ${SOMETHING=1} ${PLUS=+} ${SUMTHIN=2} ${EQUALS==} && expr $SOMETHING $PLUS $SUMTHIN
1 + 2 =
3
root@kali:~# 
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.