GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo hacer que el comando de alias funcione en script bash o archivo bashrc

'establecer alias ‘ para cualquier comando y el comando de alias funcionará bien en el shell interactivo, mientras que el alias no funciona dentro del script.

1. Concha interactiva

# alias ls1='ls -lrt'
# ls1
total 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 guión

# cat script.sh
#!/bin/bash
# Script to check the alias output
alias 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 expand_aliases la opción de shell se configura 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 man 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 los alias funcionen en bash script

Se puede usar el siguiente enfoque para hacer que el comando de alias funcione en scripts de bash. Las variables se pueden usar en la secuencia de comandos bash para establecer las opciones preferidas para cualquier comando y esas variables se pueden consultar en la sección posterior de la secuencia de comandos para satisfacer la necesidad de alias dentro de las secuencias de comandos.

Agregue el comando 'shopt -s expand_aliases' al comienzo de la secuencia de comandos para expandir los alias y hacer que el comando de alias funcione en la secuencia de comandos bash.

# cat script.sh
#!/bin/bash
# Script to check the alias output
shopt -s expand_aliases
alias ls1='ls -lrt'
ls1
# chmod +x script.sh
# ./script.sh
total 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


Linux
  1. En un script Bash, ¿cómo funciona el comando Continuar con bucles incrustados?

  2. ¿El comando Rm en Bash Script no funciona con variables?

  3. ¿Cómo hacer un script Bash para cambiar el formato de una fecha en un archivo CSV?

  4. Cómo reemplazar espacios en nombres de archivos usando un script bash

  5. ¿Cómo hacer que el archivo sea disperso?

Comando de fuente Bash

35 ejemplos de secuencias de comandos Bash

Cómo ejecutar un script Bash

¿Cómo resaltar los scripts de Bash en Vim?

¿Cómo escapar de los comandos en un alias de bashrc?

Cómo hacer grep para Unicode en un script bash