bashでevalを使用してスペースを含む値を変数に割り当てる方法

bashでevalを使用してスペースを含む値を変数に割り当てる方法

変数に動的に値を割り当てたいです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<

おすすめ記事