我正在使用下面的代码来替换字符串 在 shell 脚本中。
echo $LINE | sed -e 's/12345678/"$replace"/g'
但它被替换为 $replace
而不是该变量的值。
谁能告诉我出了什么问题吗?
最佳答案
如果您想解释$replace
,则不应使用单引号,因为它们会阻止变量替换。
尝试:
echo $LINE | sed -e "s/12345678/${replace}/g"
文字记录:
pax> export replace=987654321
pax> echo X123456789X | sed "s/123456789/${replace}/"
X987654321X
pax> _
请小心确保 ${replace}
没有任何对 sed
有意义的字符(例如 /
)因为除非逃脱否则会引起困惑。但如果正如您所说,您将一个数字替换为另一个数字,那应该不成问题。
关于unix - 使用变量替换 shell 脚本中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3306007/