GNU/Linux >> Tutoriels Linux >  >> Linux

Comment faire fonctionner la commande alias dans un script bash ou un fichier bashrc

'définir l'alias ' pour n'importe quelle commande et la commande alias fonctionnera correctement sur le shell interactif, alors que l'aliasing ne fonctionne pas dans le script.

1. Coque interactive

# 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. À l'intérieur du script

# 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

Les alias ne sont pas développés lorsque le shell n'est pas interactif, à moins que les expand_aliases l'option shell est définie à l'aide de shopt . Il peut être testé en ajoutant la commande "alias" au script bash simple et l'exécution du script ne donnera pas la commande alias, alors que sur le shell interactif, il fournira la liste disponible des alias comme indiqué dans l'exemple ci-dessus.

Depuis la page de manuel 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).

Faire fonctionner les alias dans le script bash

L'approche suivante peut être utilisée pour faire fonctionner la commande alias dans les scripts bash. Les variables peuvent être utilisées dans le script bash pour définir les options préférées pour n'importe quelle commande et ces variables peuvent être référencées dans la dernière section du script pour suffire au besoin d'alias à l'intérieur des scripts.

Ajoutez la commande 'shopt -s expand_aliases' au début du script pour développer les alias et faire fonctionner la commande alias dans le script 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. Le but de .bashrc et comment ça marche ?

  2. Comment obtenir l'achèvement de Bash pour les alias de commande ?

  3. Dans un script bash, comment la commande Continuer fonctionne-t-elle avec les boucles intégrées ?

  4. Comment désactiver un alias dans Bash pour une seule commande ? ?

  5. Comment faire un script bash pour changer le format d'une date dans un fichier csv ?

Commande de source bash

35 exemples de scripts bash

Comment exécuter un script bash

Exécutez la commande bash sur le pipeline jenkins

Comment échapper aux commandes dans un alias bashrc ?

Comment grep pour unicode � dans un script bash