13.3. Conclusion

Les alias qui ont été définis jusqu’à maintenant (ex : alias ll='ls -l', alias rm='rm -i') possédaient une valeur relativement simple.

Lorsque cette valeur est plus compliquée, la définition correcte de l’alias devient plus délicate. En particulier, les caractères spéciaux doivent être judicieusement protégés. Cela a pour conséquence d’obscurcir la lisibilité du code.

$ date 
sam. 16 avril 2022 18:24:59 CEST 
$  
$ alias annee='set $(date) ; echo ($4)' 
$  
$ annee 
bash: erreur de syntaxe près du symbole inattendu « $4 » 
$ 

L’erreur provient de l’interprétation par le shell de la parenthèse ouvrante ( qui suit la commande interne echo. Pour corriger cela, il suffit de protéger la paire de parenthèses ().

$ alias annee='set $(date) ; echo "($4)"' 
$ 
$ annee 
(2022) 
$ 

On peut remarquer que la définition de l’alias annee est moins simple que celle des alias précédents.

En résumé, dès que la valeur d’un alias intègre des caractères spéciaux du shell ou bien nécessite le passage d’arguments, il est hautement préférable d’utiliser une fonction shell [cf. Chapitre 14, Fonctions shell], et cela dans tous les contextes (session interactive, fichier shell).