我需要从字符串中设置变量名。 这是我的代码:
var="cle"
value="1"
printf -v $var "$value"
echo $cle
我希望它输出“1”
我得到了:
illegal option "-v"
我尝试用declare函数替换printf,但是破折号也没有包含它。
答案 0 :(得分:0)
在dash
中执行此操作的唯一方法是使用eval
,但这样做有风险,除非您知道您的字符串是有效的标识符。
expr "$var" : '[_[:alpha:]][_[:alnum:]]\{0,\}$' && eval "$var=$value"
如果expr
的值不是单个有效标识符,则对var
的调用失败(或者至少会失败)。