मैं एक बैश स्क्रिप्ट बनाना चाहता हूं जिसे सुडो के साथ निष्पादित किया जाना चाहिए लेकिन इसे निष्पादित करने वाले गैर-सूडो उपयोगकर्ता के नाम को ध्यान में रखना चाहिए। इसलिए यदि उपयोगकर्ता 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- संगत उपसमुच्चय है।