मैं एक बैश स्क्रिप्ट बनाना चाहता हूं जिसे सुडो के साथ निष्पादित किया जाना चाहिए लेकिन इसे निष्पादित करने वाले गैर-सूडो उपयोगकर्ता के नाम को ध्यान में रखना चाहिए। इसलिए यदि उपयोगकर्ता bobचलाता है तो sudo ./myscript.shमैं जानना चाहूंगा myscript.shकि bobइसे निष्पादित करने वाला कौन था।
आइए अंदर देखें myscript.sh:
USER=$(whoami)
# Do something that takes into account the username.
मैं उस उपयोगकर्ता का नाम कैसे जान सकता हूं जिसने इस प्रक्रिया को जन्म दिया? अधिक विशेष रूप से, मुझे whoamiप्राप्त करने bobऔर नहीं करने के बजाय क्या उपयोग करना चाहिए root?
#!/usr/bin/env bashपर मेरी बैश लिपियों पर इस तरह हैशबंग लगाया है ।
shया कुछ और के साथ कहते हैं तो हैशबैंग को नजरअंदाज कर दिया जाता है ।
USER=$(whoami)। ध्यान दें किUSERपहले से ही शेल आंतरिक चर के रूप में मौजूद है। इसके अलावा, अगर यह एक बैश स्क्रिप्ट है, तो इसका उपयोग करके न चलाएंsh, जिसमें केवल POSIX- संगत उपसमुच्चय है।