Ich habe einen Alias, der einige Parameter an ein Tool weitergibt, das ich oft benutze. Manchmal laufe ich als ich selbst, manchmal unter sudo. Leider erkennt sudo den Alias natürlich nicht.
Hat jemand einen Tipp, wie man den Alias durchgibt?
In diesem Fall habe ich eine Reihe von Optionen für Perl beim Debuggen:
alias pd='perl -Ilib -I/home/myuser/lib -d'
Manchmal muss ich meine Tools als root debuggen, anstatt Folgendes auszuführen:
pd ./mytool --some params
Ich muss es unter sudo ausführen. Ich habe viele Möglichkeiten ausprobiert:
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'"
Ich hatte gehofft, dass mein aktueller pd-alias vollständig genutzt wird (falls ich ihn später anpassen muss), obwohl einige meiner Versuche überhaupt nicht präzise waren. Mein letzter Ausweg besteht darin, es in ein Shell-Skript zu schreiben und dieses irgendwo zu platzieren, wo Sudo es finden kann. Aber Aliase sind manchmal soooo praktisch, dass es ein letzter Ausweg ist.
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.