Tengo un ~/bin
directorio (que está en mi PATH
) donde almaceno muchos pequeños scripts de 1 o 2 líneas. Algunos de ellos simplemente cd
en un directorio y ejecutan un comando en un archivo, como vim
o algo así. Pero también tengo muchos alias en mi .bash_aliases
archivo que tienen el mismo propósito.
¿Cómo decides entre escribir un pequeño script bash y escribir un alias? ¿Importa en absoluto en qué dirección vas?
Respuestas:
Si los uso con la frecuencia suficiente para garantizar la sobrecarga de tenerlos cargados en cada caparazón. Los escribiré como funciones.
Si son específicos del proyecto, podría escribirlos como un conjunto de alias y funciones que pueden obtenerse en un shell cuando estoy trabajando en ese proyecto.
Solo si funcionan de manera independiente, algo se convierte en un script en mi ~ / bin. Hay algunos liners que son básicamente alias, pero estos son para ejecutar desde otros lugares que no sean shells (ejecute avisos en otros programas, por ejemplo). En su mayor parte, tienen que ser guiones bastante sustanciales.
fuente
En general, las funciones de script de shell son más flexibles que los alias y debería preferirlas. Por ejemplo, en un alias no puede probar si la cantidad de argumentos dados o sus tipos son los esperados. Estoy de acuerdo con Caleb en que los alias se ajustan bien a las líneas simples, por ejemplo
alias cp='cp -i'
fuente
Para algo más complicado una sustitución de cadena de un solo comando, un script es probablemente más apropiado. Además, cualquier cosa que sea utilizada por otros scripts o que otras personas puedan usar probablemente sea mejor que los scripts. Si bien ejecutar programas fuera del directorio bin de otra persona no es una gran idea, es mejor que obtener el archivo de alias individual de otra persona.
Los alias son los mejores para personalizar su entorno interactivo. Por ejemplo,
e='emacs -nw'
y ese tipo de cosas.fuente
Yo uso el enfoque más simple posible.
Principalmente, si el comando no tiene parámetros, generalmente uso alias.
Si el comando tiene parámetros, uso una función.
Por ejemplo, hacer y cd'ing a un directorio:
También uso una función si el comando usa una función instalada que tiene parámetros
por ejemplo, agregando -v a git:
fuente