#!/bin/bash
#  alias.sh

shopt -s expand_aliases
# Cette option doit être activée, sinon le script n'étendra pas les alias.


# Tout d'abord, un peu d'humour.
alias Jesse_James='echo "\"Alias Jesse James\" était une comédie de 1959 avec Bob Hope."'
Jesse_James

echo; echo; echo;

alias ll="ls -l"
#  Vous pouvez utiliser soit les simples guillemets (') soit les doubles (") pour définir
#+ un alias.

echo "Essai de l'alias \"ll\" :"
ll /usr/X11R6/bin/mk*   #* L'alias fonctionne.

echo

repertoire=/usr/X11R6/bin/
prefixe=mk*  # Voir si le caractère joker va causer des problèmes.
echo "Les variables \"repertoire\" + \"prefixe\" = $repertoire$prefixe"
echo

alias lll="ls -l $repertoire$prefixe"

echo "Essai de l'alias \"lll\":"
lll         # Longue liste de tous les fichiers de /usr/X11R6/bin commençant avec mk.
# Les alias peuvent gérer les variables concaténées -- incluant les caractères joker.




VRAI=1

echo

if [ VRAI ]
then
  alias rr="ls -l"
  echo "Essai de l'alias \"rr\" à l'intérieur d'une instruction if/then :"
  rr /usr/X11R6/bin/mk*   #* Message d'erreur !
  # Les alias ne sont pas étendus à l'intérieur d'instructions composées.
  echo "Néanmoins, l'alias précédemment étendu est toujours reconnu :"
  ll /usr/X11R6/bin/mk*
fi  

echo

nombre=0
while [ $nombre -lt 3 ]
do
  alias rrr="ls -l"
  echo "Essai de l'alias \"rrr\" à l'intérieur de la boucle \"while\":"
  rrr /usr/X11R6/bin/mk*   #* L'alias ne sera pas étendu ici non plus.
                           #  alias.sh: line 57: rrr: command not found
  let nombre+=1
done 

echo; echo

alias xyz='cat $0'   # Le script se liste lui-même.
                     # Notez les simples guillemets.
xyz
#  Ceci semble fonctionne,
#+ bien que la documentation Bash suggère que cela ne le devrait pas.
#
#  Néanmoins, comme l'indique Steve Jacobson,
#+ le paramètre "$0" s'étend tout de suite après la déclaration de l'alias.

exit 0
