चर BUILDNUMBER230 मान पर सेट है। मैं 230_कमांड के लिए प्रिंट होने की उम्मीद करता हूं , echo $BUILDNUMBER_लेकिन आउटपुट खाली है जैसा कि नीचे दिखाया गया है।
# echo $BUILDNUMBER_
# echo $BUILDNUMBER
230
चर BUILDNUMBER230 मान पर सेट है। मैं 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पकड़ है।