मेरा एक उपनाम है जो कुछ मापदंडों में एक उपकरण के लिए गुजरता है जो मैं अक्सर उपयोग करता हूं। कभी मैं खुद के रूप में चलाता हूं, कभी सूडो के नीचे। दुर्भाग्य से, बेशक, sudo उपनाम को नहीं पहचानता है।
क्या किसी को यह संकेत नहीं है कि कैसे उर्फ से गुजरना है?
इस मामले में, मेरे पास डिबगिंग के दौरान पर्ल के लिए विकल्पों का एक गुच्छा है:
alias pd='perl -Ilib -I/home/myuser/lib -d'
कभी-कभी, मुझे अपने टूल को रूट के रूप में डीबग करना पड़ता है, इसलिए, चलने के बजाय:
pd ./mytool --some params
मुझे इसे सूडो के तहत चलाने की जरूरत है। मैंने कई तरीके आज़माए हैं:
sudo eval $(alias pd)\; pd ./mytool --some params
sudo $(alias pd)\; pd ./mytool --some params
sudo bash -c "$(alias pd)\; pd ./mytool --some params"
sudo bash -c "$(alias pd); pd ./mytool --some params"
sudo bash -c eval\ "$(alias pd)\; pd ./mytool --some params"
sudo bash -c eval\ "'$(alias pd)\; pd ./mytool --some params'"
मैं यह सुनिश्चित करने के लिए एक अच्छे, संक्षिप्त तरीके की उम्मीद कर रहा था कि मेरे वर्तमान पीडी उर्फ का पूरी तरह से उपयोग किया गया था (यदि मुझे इसे बाद में ट्वीक करने की आवश्यकता है), हालांकि मेरे कुछ प्रयास बिल्कुल भी संक्षिप्त नहीं थे। मेरा अंतिम उपाय यह है कि इसे एक शेल स्क्रिप्ट में डाल दिया जाए और इसे कहीं और डाल दिया जाए, जो कि सूडो को मिल जाएगा। लेकिन कभी-कभी एलियॉज़ सूई काम में लेते हैं, इसलिए यह एक अंतिम उपाय है।
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.