Bazı parametrelerde sık kullandığım bir araca geçen bir takma adım var. Bazen kendim gibi koşarım, bazen sudo altında. Ne yazık ki, elbette, sudo takma adı tanımıyor.
Takma adı nasıl geçireceğine dair bir ipucu var mı?
Bu durumda, hata ayıklama yaparken perl için bir sürü seçeneğim var:
alias pd='perl -Ilib -I/home/myuser/lib -d'
Bazen, araçlarımı çalıştırmak yerine kök olarak hata ayıklamak zorunda kalıyorum:
pd ./mytool --some params
Onu sudo altında çalıştırmam gerekiyor. Birçok yol denedim:
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'"
Şu anki pd takma adımın tam olarak kullanıldığından emin olmak için güzel ve özlü bir yol umuyordum (daha sonra ince ayar yapmam gerekebilirdi), denemelerimden bazıları kısa olmasa da. Son çare, onu bir kabuk betiğine koymak ve sudo'nun bulabileceği bir yere koymak. Ancak takma adlar bazen çok kullanışlı, bu yüzden son çare.
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.