2010-01-08 14 views
9

मैं बैश खोल प्रोग्रामिंग में शुरुआत कर रहा हूं। क्या आप मुझे बैश खोल में '$$' प्रतीकों के बारे में बता सकते हैं?

अगर मैं कोशिश निम्नलिखित

#> echo $$ 

यह प्रिंट

#>18756 

आप मुझे बता सकते है कि इस प्रतीक के लिए और जब प्रयोग किया जाता है?

+0

क्या आपके खोल के लिए ठीक मैनुअल पढ़ने की अच्छी पुरानी परंपरा के बन गया है? – Jens

उत्तर

16

यह बैश प्रक्रिया की प्रक्रिया आईडी है।

आप इसे उपयोग कर सकते हैं अपने जीवन पर अपनी प्रक्रिया पर नज़र रखने के - ps -p का उपयोग करता है, तो यह अभी भी चल रहा है देखने के लिए, यह एक संकेत kill (उदाहरण के लिए प्रक्रिया को रोकने के लिए) का उपयोग कर भेज renice साथ उसकी प्राथमिकता बदलने के लिए, और इतने पर।

प्रक्रिया आईडी अक्सर फाइलों को लॉग करने के लिए लिखी जाती हैं, खासकर जब एक बार स्क्रिप्ट के कई उदाहरण प्रदर्शन को ट्रैक करने या समस्याओं का निदान करने में मदद के लिए चलाते हैं।

यहां विशेष पैरामीटर को रेखांकित करने के लिए the bash documentation है।

BASHPID, ghostdog74 द्वारा उल्लिखित, संस्करण 4.0 में जोड़ा गया था। यहाँ मेंडेल कूपर के Advanced Bash-Scripting Guide कि $$ और $BASHPID के बीच अंतर पता चलता से एक उदाहरण है:

#!/bin/bash4 

echo "\$\$ outside of subshell = $$" # 9602 
echo "\$BASH_SUBSHELL outside of subshell = $BASH_SUBSHELL" # 0 
echo "\$BASHPID outside of subshell = $BASHPID" # 9602 
echo 

(echo "\$\$ inside of subshell = $$" # 9602 
echo "\$BASH_SUBSHELL inside of subshell = $BASH_SUBSHELL" # 1 
echo "\$BASHPID inside of subshell = $BASHPID") # 9603 
# Note that $$ returns PID of parent process. 
+0

या आप सीधे आधिकारिक बैश दस्तावेज से लिंक कर सकते हैं: http://www.gnu.org/software/bash/manual/bashref.html# विशेष- पैरामीटर http://www.gnu.org/software/bash/manual /bashref.html#Shell-Variables – ephemient

+1

अच्छा विचार - किया गया, धन्यवाद। –

1

अगर आप पार्टी, एक अपेक्षाकृत करीब बराबर BASHPID चर रहा है है। देखें आदमी पार्टी

BASHPID 
     Expands to the process id of the current bash process. This differs from $$ under certain circumstances, such as subshells 
     that do not require bash to be re-initialized. 
संबंधित मुद्दे