‘set alias‘ pour n’importe quelle commande et la commande alias fonctionnera correctement sur le shell interactif, alors que l’aliasing ne fonctionne pas à l’intérieur du script.
1. Il est possible de créer un shell interactif
# 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. Dans le 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
Les alias ne sont pas développés lorsque le shell n’est pas interactif, sauf si l’option de shell expand_aliases 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 d’alias comme indiqué dans l’exemple ci-dessus.
à partir de 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 l’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 section ultérieure du script pour suffire au besoin d’alias dans les 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 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