我有这个脚本:
num='[0-9]'
sedcmd='-e "s/${num}/as df/g"'
echo 123 | sed -r $sedcmd
最后一行产生以下内容:
sed:-e表达式#1,字符1:未知命令:
我错过了什么?
不要使用变量来存储shell命令,而要使用数组。请参阅BashFAQ-50,我正在尝试将命令放入变量中,但是复杂的情况总是会失败。
您只需使用如下数组
num='[0-9]'
argArray=('-e' "s/${num}/as df/g")
并用双引号将数组扩展名括起来,以使单词不能通过分词来拆分,并称为
echo 123 | sed -r "${argArray[@]}"
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句