बश में $ $ 1 का अर्थ क्या है?


27

मैं वास्तव में तर्कों के साथ खेल रहा हूं और यह हुआ। मैंने सिर्फ यह देखना पसंद किया कि अगर मैं टाइप करूँ तो क्या होगा $$1और मैंने इसे किया और नीचे कुछ मिला।

raja@raja-BONEFISH:~$ $$1
19301: command not found

19301 का क्या मतलब है, यह कुछ बता रहा है?

निचला-रेखा: $$1बाश में क्या अर्थ है ।


1
आउच !! यह बहुत आसान बात है। मुझे अभी भी बहुत सी चीजें सीखनी हैं। सभी उत्तर सुपर हैं। सभी को +1।
r --dʒɑ

जवाबों:


27

$$ मौजूदा प्रक्रिया का पीआईडी ​​(प्रोसेस आईडी) है।

$$1उपरोक्त पीआईडी ​​है जिसके बाद शाब्दिक स्ट्रिंग है 1

तो यह आपको बता रहा है कि bashपीआईडी ​​1930 के साथ आपकी प्रक्रिया है।

लेकिन ... मुक्त चाल:

show() { eval echo \$$1; }
show PATH
/home/romano/bin:/usr/local/bin:/bin:/usr/bin

(काफी जटिल, यह नहीं है?)

TLDP में अधिक जानकारी ।



1
एक पल के लिए मैंने टीएलडीपी को "टू लॉन्ग डिडंट पी" के रूप में पढ़ा।
लुइस अल्वाराडो

13
  • $$- वर्तमान शेल का आकार (सब्सक्राइब नहीं) - देखें कि विशेष डॉलर साइन शेल चर क्या हैं?

  • $$1- वर्तमान शेल (उपधारा नहीं) का पिड इसके बाद 1

  • $$2- वर्तमान शेल (उपधारा नहीं) का पिड इसके बाद 2

  • $$a- aवर्ण के बाद वर्तमान शेल (उपधारा नहीं) की पिड ।

  • और इसी तरह...

का आउटपुट देखें echo $$1

और आपको त्रुटि मिलती है command not foundक्योंकि आप अंकों से बना एक स्ट्रिंग निष्पादित करने की कोशिश कर रहे हैं जो स्पष्ट रूप से एक कमांड नहीं है।


10

आप concatenated है $$और 1एक साथ वर्तमान खोल के पीआईडी पाने के लिए और 1, यानी $$वर्तमान में चल रहे खोल के पीआईडी के लिए खड़ा है और 1सिर्फ एक चरित्र, तुम कर सकते हो है $$a, $$@पीआईडी निम्न वर्ण साथ concatenated मिलता है।


6

$$ यह जानकारी मौजूद होगी 1930जो है पीआईडी वर्तमान खोल के।

जब आप टाइप $$1करते हैं तो इसका मतलब है कि एक के बाद एक पीआईडी ​​है ताकि आप आउटपुट होंगे 19301

कोशिश करें $$2कि आउटपुट होगा19302

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.