変数に動的に値を割り当てたいですeval
。次のダミーの例が機能します。
var_name="fruit"
var_value="orange"
eval $(echo $var_name=$var_value)
echo $fruit
orange
ただし、変数の値にスペースが含まれている場合、二重eval
引用符の間にあってもエラーが返されます。$var_value
var_name="fruit"
var_value="blue orange"
eval $(echo $var_name="$var_value")
bash: orange : command not found
この問題を解決する方法はありますか?
ベストアンサー1
体験版を使用しないでください。declare
$ declare "$var_name=$var_value"
$ echo "fruit: >$fruit<"
fruit: >blue orange<