Quiero saber la diferencia entre alias y funciones en el shell bash, y cuándo usar cuál.
Parece obvio que, dado que las funciones pueden tomar argumentos, son mucho más poderosas, ya que trabajo principalmente en la carretera con una netbook y quiero ahorrar energía y poder de procesamiento, especialmente me gustaría saber un poco más sobre las diferencias de rendimiento de estas dos formas de extender la funcionalidad bash son.
Respuestas:
Piense en los alias como apodos. Es posible que tenga un comando que realiza mucho pero que quiere acortar.
Como ejemplo, a menudo desea ir directamente al escritorio en la línea de comandos, por lo que puede hacer esto
A partir de entonces solo tienes que escribir
en terminal y realizará el
cd ~/Desktop
para usted.Las funciones contienen lógica. En una función, puede realizar llamadas a varios programas diferentes. Aquí hay una función de eco simple
Si bien puede parecer similar a un alias cuando lo llamas
Su e () puede hacer que sucedan muchas cosas diferentes. Lo anterior es un ejemplo simplista.
Los alias deben reservarse para casos de uso simple. Ejemplo personal: he reemplazado mi
rm
comando asíCada vez que hago un rm, lo enviará a la basura en lugar de eliminarlo del disco. Esto satisface mi torpeza en la terminal donde puedo (a veces) eliminar accidentalmente un archivo importante.
Las funciones , debe recordar, son piezas de lógica. Por lo general, no usaría una función independiente. Sería parte de un guión más grande. Imagine un script que toma todos sus archivos y los renombra a sus versiones latinas de cerdo. Ignora que hay diferentes formas de hacerlo.
Pero lo que podría hacer es recorrer cada archivo en el directorio y pasar la ruta de archivo a su función RenameAsPigLatin. La función RenameAsPigLatin podría tener una lógica adicional que involucre números, donde usted decide que los archivos que terminan con números no deberían renombrarse.
Inmediatamente puede ver el beneficio de tenerlo como una función. La función puede centrarse en cambiar el nombre de sus reglas extrañas, mientras que el resto del script puede atravesar varios directorios según sea necesario.
fuente
Un alias es un acceso directo simple que se usa en una consola para evitar escribir comandos largos o siempre repetir las mismas opciones.
Un ejemplo clásico sería:
Los alias solo funcionan en una consola interactiva, no están destinados a ser utilizados en scripts.
La función se puede usar en scripts o en la consola, pero se usa con más frecuencia en scripts.
Contrariamente a los alias, que simplemente son reemplazados por su valor, una función será interpretada por el shell bash.
Las funciones son mucho más poderosas que los alias, se pueden usar para construir programas muy complejos.
fuente