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
alias desktop="cd ~/Desktop"
A partir de entonces solo tienes que escribir
desktop
en terminal y realizará el cd ~/Desktoppara 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
function e {
echo $1
echo $1 $1
echo $1 $1 $1
}
Si bien puede parecer similar a un alias cuando lo llamas
e Hello
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 rmcomando así
alias rm='trash-put'
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.