Pages

25 novembre 2012

Debian: Utilisation des alias dans un script Shell

Les alias en Shell sont des raccourcis clavier qui évitent d'entrer des commandes trop longues lorsque celles-cis sont utilisées trop fréquemment.

Dans ce post on s'intéressera aux alias définis avec bash.

Par exemple, on a souvent l'habitude d'entrer:
ls -l
 pour lister les fichier d'un répertoire. On crée alors souvent l'alias:
alias ll='ls -l'
Pour éviter de supprimer des fichiers par erreur, on crée souvent un alias pour la commande rm:
alias rm='rm -i'
Généralement, les alias de bash sont créés dans le fichier ~/.bashrc ; éventuellement dans un fichier spécifique ~/.bash_aliases.

Cela étant, si on appelle la commande ll dans un script shell (ou directement comme suit), on obtient l'erreur suivante:
bash -c "ll"
 bash: ll : commande introuvable
En effet, les alias ne sont plus accessibles dans ce contexte. Afin de pouvoir utiliser des alias dans un script Shell, il faut procéder comme suit
#!/bin/bash
shopt -s expand_aliases # Must set this option, else script will not expand aliases. 
alias ll='ls -lr' 
echo "Testing ll"
ll 

Mais attention, la comande shopt -s expand_aliases permet d'utiliser les alias définis dans le script shell mais pas ceux qui l'ont été dans .bashrc.

Et shopt est une commande interne de bash et non de sh.

Aucun commentaire:

Enregistrer un commentaire