echo "$*"
つまり、スペースで区切られたコマンドライン引数全体を出力します (または、技術的には $IFS
の値は何でも) は)。変数に格納したい場合は、そうすることができます
thevar="$*"
質問に対する十分な回答が得られない場合は、他に何を言うべきかわかりません...
$IFS の関与を避けたい場合は、[email protected] を使用してください (または $* を引用符で囲まないでください)
$ 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
IFS の動作も変数の割り当てに従います。
$ 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
$IFS への割り当てが $splatvar の割り当て後に行われた場合、すべての出力が同じになることに注意してください ($IFS は「atsplat2」の例では効果がありません)。