Default Values और Parameter Expansion की Basics
In this page:
${variable:-default}
${variable:=default}
${variable:?error message}
${var:-default}: var बदले बिना एक Fallback उपयोग करें
${var:-default} var की value में expand होता है अगर यह set और non-empty है, या अन्यथा default में, कभी var को खुद modify किए बिना। यह एक single expression में उपयोग के लिए एक variable को एक safe fallback value देने का सबसे common तरीका है।
उदाहरण: ${var:-default}: Use a Fallback Without Changing var
#!/bin/bash
unset username
echo "Hello, ${username:-Guest}!"
echo "username is still: [${username}]"
Login to try C/C++/Java/PHP code in the editor
${var:=default}: एक Fallback उपयोग करें और इसे Assign करें
${var:=default} :- जैसा behave करता है लेकिन additionally जब यह unset या empty हो तो default को var में assign भी करता है, इसलिए var के subsequent references नई value देखते हैं। यह सिर्फ plain variables पर काम करता है, $1 जैसे positional parameters पर नहीं।
उदाहरण: ${var:=default}: Use a Fallback and Assign It
#!/bin/bash
unset config_path
echo "Config: ${config_path:=/etc/default/app.conf}"
echo "config_path is now: $config_path"
Login to try C/C++/Java/PHP code in the editor
${var:?message}: एक Value Require करें
${var:?message} var की value में expand होता है अगर यह set और non-empty है; अगर नहीं, तो यह message को stderr पर print करता है और script को एक non-zero status के साथ exit करा देता है। यह enforce करने का एक concise तरीका है कि एक required variable असल में provide किया गया था।
उदाहरण: ${var:?message}: Require a Value
#!/bin/bash
api_key="abc123"
echo "Using API key: ${api_key:?ERROR: api_key must be set}"
Login to try C/C++/Java/PHP code in the editor
${var:+alt}: सिर्फ अगर Set हो
${var:+alt} तब alt में expand होता है जब var set और non-empty हो, और कुछ भी नहीं जब var unset या empty हो -- :- की mirror image। यह एक flag या text का टुकड़ा conditionally सिर्फ तब शामिल करने के लिए handy है जब एक variable की कोई real value हो।
उदाहरण: ${var:+alt}: Only If Set
#!/bin/bash
verbose="yes"
quiet=""
echo "Verbose flag: ${verbose:+--verbose}"
echo "Quiet flag: ${quiet:+--quiet}"
Login to try C/C++/Java/PHP code in the editor
:-(default उपयोग करें, assign न करें) को:=(default उपयोग करें AND इसे variable में वापस assign करें) के साथ confuse करना; वे similar दिखते हैं लेकिन उनके side effects बहुत अलग हैं।${var:-default}में colon भूल जाना meaning बदल देता है;${var-default}सिर्फ एक completely unset variable के लिए trigger होता है, जबकि${var:-default}एक ऐसे variable के लिए भी trigger होता है जो set है पर empty है।$1जैसे positional parameters पर${var:=default}उपयोग करना; Bash इस तरह positional parameters को assign करने की अनुमति नहीं देता और एक error raise करेगा।
${var:-default}defaultमें expand होता है अगरvarunset या empty हो,varको खुद modify किए बिना।${var:=default}वही करता है लेकिन बाद में उपयोग के लिएdefaultकोvarमें वापस assign भी करता है।${var:?message}एक error print करता है और script को exit कर देता है अगरvarunset या empty हो -- required inputs enforce करने के लिए useful।${var:+alt}सिर्फ तबaltमें expand होता है जबvarset और non-empty हो (:-का inverse condition)।
Chapter Quiz — Complete all 13 topics to unlock
0/13 topics done
Complete these topics first: