我使用下面的代码替换一个字符串
在shell脚本内。
在shell脚本内。
echo $LINE | sed -e 's/12345678/"$replace"/g'
但它被替换为$ replace而不是该变量的值。
任何人都能知道出了什么问题?
如果你想解释$ replace,你不应该使用单引号,因为它们阻止变量替换。
尝试:
echo $LINE | sed -e "s/12345678/\"${replace}\"/g"
假设你想要的报价。如果你不想要的报价,使用:
echo $LINE | sed -e "s/12345678/${replace}/g"
成绩单:
pax> export replace=987654321 pax> echo X123456789X | sed "s/123456789/${replace}/" X987654321X pax> _
只要小心,确保$ {replace}没有任何意义的字符sed(像/例如),因为它会导致混乱,除非转义。但是,如果,如你所说,你用另一个数字替换一个数字,这不应该是一个问题。