यूनिक्स में ऑपरेटिंग सिस्टम की तरह प्रत्येक प्रक्रिया में एक अस्थायी रूप से अद्वितीय पहचानकर्ता, पीआईडी होता है। एक ही समय में चलने वाली दो प्रक्रियाओं में एक ही पीआईडी हो सकती है, और $$ स्क्रिप्ट चलाने वाले बैश इंस्टेंस के पीआईडी को संदर्भित करता है।
यह बहुत अधिक एक अनूठा आइडेंटिफायर इस अर्थ में है कि इसका पुन: उपयोग नहीं किया जाएगा (वास्तव में, पीआईडी लगातार उपयोग किया जाता है)। यह आपको एक संख्या देता है जैसे कि, यदि कोई अन्य व्यक्ति आपकी स्क्रिप्ट चलाता है, तो आपका एक अलग पहचानकर्ता होगा जबकि आपका अभी भी चल रहा है। एक बार तुम्हारी मृत्यु हो जाने के बाद, पीआईडी का पुनर्नवीनीकरण किया जा सकता है और कोई और आपकी स्क्रिप्ट चला सकता है, एक ही पीआईडी प्राप्त कर सकता है, और इसलिए एक ही फ़ाइल नाम प्राप्त करें।
इस प्रकार, यह केवल सचमुच कहने के लिए है कि "$$ एक फ़ाइल नाम देता है जैसे कि अगर कोई और एक ही स्क्रिप्ट चलाता है तो मेरा उदाहरण अभी भी चल रहा है, उन्हें एक अलग नाम मिलेगा"।
स्रोत
2008-09-17 00:05:09
लोग हैं, जो सिर्फ शीर्ष जवाब को देखने के लिए, $$ भी एक एकल फाइल (उदा/tmp) एक सार्वजनिक रूप से लिखने योग्य निर्देशिका के लिए लिखने के लिए ठीक नहीं है। Symlinks के साथ कूड़े/tmp करना आसान है जो आपकी स्क्रिप्ट को कहीं अवांछित लिखने का कारण बनता है। mktemp बहुत बेहतर है। –
हाँ, $$ का उपयोग करने से एक बुरा सुरक्षा छेद होगा। ऐसा मत करो – emk
पर्याप्त प्रतिनिधि वाले किसी को उत्तर को संपादित करना चाहिए ... – dwestbrook