Rappel sur bash : $@, "$@", $*, "$*"
| Expression | Signification | Comportement |
$@ |
tous les arguments | casse les espaces |
"$@" |
tous les arguments | préserve chaque argument |
$* |
tous les arguments fusionnés | une seule chaîne |
"$*" |
tous les arguments fusionnés | une seule chaîne, séparée par IFS |
IFS (Internal Field Separator) correspond à une variable spéciale qui indique comment Bash découpe une chaîne en “mots” lorsqu’il lit des arguments.
Bash sépare les champs selon :
-
l’espace
-
la tabulation
-
le saut de ligne
| Expression | Utilise IFS | Résultat |
"$@" |
❌ Non | arguments séparés, intacts |
$@ |
✔️ Oui | arguments éclatés selon IFS |
"$*" |
✔️ Oui | arguments fusionnés en une seule chaîne |
$* |
✔️ Oui | arguments éclatés puis fusionnés |