Configuré alias en /etc/profile.d/alias.sh para cada shell de inicio de sesión. Pero si ejecuto script.sh, no puedo usar ese alias. ¿Cómo puedo establecer un alias incluso para subcapas o procesos secundarios?
/etc/profile.d/alias.sh
alias rmvr='rm -rv';
alias cprv='cp -rv';
alias mvrv='mv -rv';
()
alias foo='echo foobar'
, enter,(foo)
salidasfoobar
.Esto se debe a que /etc/profile.d/ solo lo utiliza el shell de inicio de sesión interactivo. Sin embargo,
/etc/bash.bashrc
es utilizado por el shell interactivo sin inicio de sesión.Como generalmente establezco algunos alias globales para el sistema, he comenzado a crear
/etc/bashrc.d
donde puedo soltar un archivo con algunos alias globales:fuente
Si desea que se hereden a subcapas, utilice funciones en su lugar. Esos se pueden exportar al entorno (
export -f
), y las subcapas tendrán definidas esas funciones.Entonces, para uno de tus ejemplos:
Si tiene un montón de ellos, configure primero la exportación:
fuente
Pregunta similar, quería ejecutar bash "modo de comando" y tener alias disponibles:
bash -i 'alias'
no hace nada. Pero descubrí el indicador -i que ejecuta las configuraciones interactivas, así que esto:bash -ci 'alias'
funciona.Para su pregunta, parece que puede eludirla "abasteciendo" el archivo, por ejemplo:
Entonces los alias funcionan. FWIW ...
fuente