「set」コマンドを使用して特殊記号「*」に変数を設定したいと思います。
$ Q='A * B'
$ set -- $Q
$ echo "$1 $2 $3"
私は「A*B」を期待した
もちろん、アスタリスクは特別なシンボルなので、期待どおりに機能しません。
私は試した:
$ Q='A \* B'
$ Q='A "*" B'
しかし、次に渡されます。$2
期待していたA \* B
よりもそんなことを得たA "*" B
A * B
この式をsetコマンドに正しく渡すには?
ベストアンサー1
奇妙な動作を防ぐには、常に変数を引用する必要があります。したがって、set -- "Q"
ただset -- $Q
。
$ Q='A * B'
$ set -- "$Q"
$ echo "$1 $2 $3"
A * B