‘set alias’ para cualquier comando y el comando alias funcionará bien en el shell interactivo, mientras que el aliasing no funciona dentro del script.
1. Shell interactivo
# alias ls1='ls -lrt'# ls1total 0-rw-r--r-- 1 root root 0 Oct 12 12:14 file1-rw-r--r-- 1 root root 0 Oct 12 12:14 file2
2. Dentro del script
# cat script.sh#!/bin/bash# Script to check the alias outputalias ls1='ls -lrt'ls1
# chmod +x script.sh# ./script.sh ./script.sh: line 3: ls1: command not found
los alias no se expanden cuando el shell no es interactivo, a menos que la opción expand_aliases shell se establezca usando shopt., Se puede probar agregando el comando «alias» al script bash simple y la ejecución del script no dará el comando alias, mientras que en el shell interactivo proporcionará la lista disponible de alias como se muestra en el ejemplo anterior.
desde la página de manual de Bash :
Aliases are not expanded when the shell is not interactive, unless the expand_aliases shell option is set using shopt (see the description of shopt under SHELL BUILTIN COMMANDS below).
hacer que el alias funcione en el script bash
Se puede utilizar el siguiente enfoque, para hacer que el comando alias funcione en scripts bash., Las Variables se pueden usar en el script bash para establecer las opciones preferidas para cualquier comando y esas variables se pueden referir en la sección posterior del script para satisfacer la necesidad de alias dentro de los scripts.
agregue el comando ‘shopt – s expand_aliases’ al inicio del script para expandir alias y hacer que el comando alias funcione en el script bash.
# cat script.sh#!/bin/bash# Script to check the alias outputshopt -s expand_aliasesalias ls1='ls -lrt'ls1
# chmod +x script.sh# ./script.shtotal 0-rw-r--r-- 1 root root 0 Oct 12 12:14 file1-rw-r--r-- 1 root root 0 Oct 12 12:14 file2