echo "$*"
udělá to, co chcete, konkrétně vytiskne celé argumenty příkazového řádku oddělené mezerou (nebo technicky bez ohledu na hodnotu $IFS
je). Pokud byste to chtěli uložit do proměnné, můžete to udělat
thevar="$*"
Pokud to dostatečně neodpovídá na vaši otázku, nejsem si jistý, co dalšího říct...
Pokud se nechcete podílet na $IFS, použijte [email protected] (nebo neuvádějte $* do uvozovek)
$ 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
Chování IFS se také řídí přiřazením proměnných.
$ 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
Všimněte si, že pokud by přiřazení k $IFS bylo provedeno po přiřazení $splatvar, pak by všechny výstupy byly stejné ($IFS by v příkladu "atsplat2" neměl žádný vliv).