bash - विशेष डॉलर साइन शैल चर क्या हैं?




environment-variables echo (3)

कुछ उदाहरणों का ख्याल रखना; $ 0 में कुछ प्रमुख पथ के साथ-साथ कार्यक्रम का नाम भी शामिल हो सकता है। जैसे इस दो पंक्ति स्क्रिप्ट को ./mytry.sh के रूप में सहेजें और इसे निष्पादित करें।

#!/bin/bash

echo "parameter 0 --> $0" ; exit 0

आउटपुट:

parameter 0 --> ./mytry.sh

यह स्लैकवेयर 14.2 के माध्यम से, बैश के वर्तमान (वर्ष 2016) संस्करण पर है

बैश में, कई चर होते हैं जो विशेष, लगातार-अर्थ मान रखते हैं। उदाहरण के लिए,

./myprogram &; echo $!

प्रक्रिया के पीआईडी ​​को वापस कर देगा जो myprogram पृष्ठभूमि। मैं दूसरों के बारे में जानता हूं, जैसे कि $? जो मुझे लगता है कि वर्तमान टीटीवी है। क्या वहां कुछ हैं?


$# , $0 और $1 , ..., $n करते हैं, यह समझने में सहायता के लिए, मैं इस स्क्रिप्ट का उपयोग करता हूं:

#!/bin/bash

for ((i=0; i<=$#; i++)); do
  echo "parameter $i --> ${!i}"
done

इसे चलाने से प्रतिनिधि उत्पादन आता है:

$ ./myparams.sh "hello" "how are you" "i am fine"
parameter 0 --> myparams.sh
parameter 1 --> hello
parameter 2 --> how are you
parameter 3 --> i am fine

  • $1 , $2 , $3 , ... स्थितित्मक पैरामीटर हैं
  • "[email protected]" सभी स्थितित्मक पैरामीटर, {$1, $2, $3 ...} का एक सरणी जैसा निर्माण है।
  • "$*" सभी स्थितित्मक मानकों का आईएफएस विस्तार है, $1 $2 $3 ...
  • $# स्थितित्मक मानकों की संख्या है।
  • $- खोल के लिए सेट वर्तमान विकल्प।
  • वर्तमान खोल का $$ पिड (सबहेल नहीं)।
  • $_ सबसे हालिया पैरामीटर (या स्टार्टअप के तुरंत बाद वर्तमान खोल शुरू करने के लिए कमांड का abs पथ)।
  • $IFS (इनपुट) फ़ील्ड विभाजक है।
  • $? सबसे हाल ही में अग्रभूमि पाइपलाइन निकास स्थिति है।
  • $! सबसे हालिया पृष्ठभूमि कमांड का पीआईडी ​​है।
  • $0 खोल या खोल स्क्रिप्ट का नाम है।

उपरोक्त में से अधिकांश बैश संदर्भ मैनुअल में विशेष पैरामीटर के तहत पाया जा सकता है। खोल द्वारा निर्धारित सभी पर्यावरण चर हैं

एक व्यापक सूचकांक के लिए, कृपया संदर्भ मैनुअल वैरिएबल इंडेक्स देखें





dollar-sign