Tengo un alias que pasa algunos parámetros a una herramienta que uso con frecuencia. A veces corro como yo mismo, a veces bajo sudo. Desafortunadamente, por supuesto, sudo no reconoce el alias.
¿Alguien tiene una pista sobre cómo pasar el alias?
En este caso, tengo un montón de opciones para Perl cuando estoy depurando:
alias pd='perl -Ilib -I/home/myuser/lib -d'
A veces, tengo que depurar mis herramientas como root, así que, en lugar de ejecutar:
pd ./mytool --some params
Necesito ejecutarlo bajo sudo. Lo he intentado de muchas maneras:
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'"
Esperaba una forma agradable y concisa de asegurarme de que mi alias pd actual se usara completamente (en caso de que necesite modificarlo más tarde), aunque algunos de mis intentos no fueron concisos en absoluto. Mi último recurso es ponerlo en un script de shell y ponerlo en algún lugar que sudo pueda encontrar. Pero los alias son muy útiles a veces, por lo que es un último recurso.
A trailing space in value causes the next word to be checked for alias substitution when the alias is expanded.