echo "$*"
haría lo que quisiera, es decir, imprimir los argumentos completos de la línea de comandos, separados por un espacio (o, técnicamente, cualquiera que sea el valor de $IFS
es). Si quisiera almacenarlo en una variable, podría hacerlo
thevar="$*"
Si eso no responde a su pregunta lo suficientemente bien, no estoy seguro de qué más decir...
Si quiere evitar tener $IFS involucrado, use [email protected] (o no incluya $* entre comillas)
$ 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
El comportamiento de IFS también sigue las asignaciones 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
Tenga en cuenta que si la asignación a $IFS se realizó después de la asignación de $splatvar, todas las salidas serían las mismas ($IFS no tendría ningún efecto en el ejemplo "atsplat2").