echo "$*"
feriez ce que vous voudriez, à savoir afficher tous les arguments de la ligne de commande, séparés par un espace (ou, techniquement, quelle que soit la valeur de $IFS
est). Si vous vouliez le stocker dans une variable, vous pourriez le faire
thevar="$*"
Si cela ne répond pas assez bien à votre question, je ne sais pas quoi dire d'autre...
Si vous voulez éviter d'avoir $IFS impliqué, utilisez [email protected] (ou ne mettez pas $* entre guillemets)
$ cat atsplat
IFS="_"
echo " at: [email protected]"
echo " splat: $*"
echo "noquote: "$*
$ ./atsplat this is a test
at: this is a test
splat: this_is_a_test
noquote: this is a test
Le comportement IFS suit également les affectations de variables.
$ cat atsplat2
IFS="_"
[email protected]
splatvar=$*
echo " at: $atvar"
echo " splat: $splatvar"
echo "noquote: "$splatvar
$ ./atsplat2 this is a test
at: this is a test
splat: this_is_a_test
noquote: this is a test
Notez que si l'affectation à $IFS était effectuée après l'affectation de $splatvar, alors toutes les sorties seraient les mêmes ($IFS n'aurait aucun effet dans l'exemple "atsplat2").