चर BUILDNUMBER
230 मान पर सेट है। मैं 230_
कमांड के लिए प्रिंट होने की उम्मीद करता हूं , echo $BUILDNUMBER_
लेकिन आउटपुट खाली है जैसा कि नीचे दिखाया गया है।
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
चर BUILDNUMBER
230 मान पर सेट है। मैं 230_
कमांड के लिए प्रिंट होने की उम्मीद करता हूं , echo $BUILDNUMBER_
लेकिन आउटपुट खाली है जैसा कि नीचे दिखाया गया है।
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
जवाबों:
आदेश echo $BUILDNUMBER_
वैरिएबल के मान को प्रिंट करने वाला है $BUILDNUMBER_
जो सेट नहीं किया गया है (अंडरस्कोर वैरिएबल नाम के लिए एक वैध चरित्र है जैसा कि स्पष्ट रूप से जेफ स्कालर द्वारा नोट किया गया है)
आपको बस चर नाम के आसपास ब्रेसिज़ (घुंघराले ब्रैकेट) लगाने या सबसे कठोर printf
टूल का उपयोग करने की आवश्यकता है :
echo "${BUILDNUMBER}_"
printf '%s_\n' "$BUILDNUMBER"
पुनश्च: हमेशा अपने चर का उद्धरण करें।
जैसा कि जॉर्ज वैसिलिउ ने पहले ही समझाया था , ऐसा इसलिए है क्योंकि आप $BUILDNUMBER_
इसके बजाय चर को प्रिंट कर रहे हैं $BUILDNUMBER
। जो आप चाहते हैं उसे पाने का सबसे अच्छा तरीका है ${BUILDNUMBER}_
जैसा कि जॉर्ज ने समझाया। यहाँ कुछ और विकल्प दिए गए हैं:
$ echo "$BUILDNUMBER"_
230_
$ echo $BUILDNUMBER"_"
230_
$ printf '%s_\n' "$BUILDNUMBER"
230_
$IFS
धारण करता है, इसलिए echo $BUILDNUMBER"_"
अभी भी गलत है। तीन में से, केवल printf '%s_\n' "$BUILDNUMBER"
सही है अगर हम नहीं जानते कि क्या है $BUILDNUMBER
या $IFS
पकड़ है।