Comparatif des variables $* et $@

1. Utilisation de $* et de $@ sans guillemets

Les variables $* et $@ contiennent la liste des arguments d’un script shell. Lorsqu’elles ne sont pas entourées par des guillemets, elles sont équivalentes.

Exemple

Le script test_var1.sh affiche la valeur de chaque argument de la ligne de commande :

$ nl test_var1.sh  
     1  #! /usr/bin/ksh 
     2  # compatibilité du script : posix, ksh, bash 
     3 
     4  compteur=1 ; 
 
     5  # $* : tous les espaces sont vus comme séparateurs de mots 
     6  for arg in $*           # Equivalent a $@ 
     7  do 
     8    echo "Argument $compteur : $arg" 
     9    compteur=$(( compteur + 1 )) 
    10  done 

Voici un exemple d’appel du script :

$ test_var1.sh a b c "d e f" g 

Première étape : le shell courant traite les caractères de protection avant de lancer le script. À ce niveau, les espaces internes à "d e f" sont protégés et ne sont pas vues comme séparateurs de mots, mais comme des caractères...

couv_EI7PRO.png

Découvrez 

le livre :

Aussi inclus dans nos :

Précédent
Présentation
Suivant
Manipulation de variables