我正在用 bash 编写脚本,可以使用以下代码从句子中删除字符串:
echo 'This is a foo test' | sed 's/\<foo\>//g'
输出:“这是一个测试”
但是,我希望能够用变量替换 foo。我尝试了下面的命令,但它并没有从句子中删除值。
temp="foo"
echo 'This is a foo test' | sed 's/\<$temp\>//g'
输出:'这是一个 foo 测试'
答案1
在单引号内,变量不会被替换(因为$
在单引号内没有特殊含义)。您可以改用双引号:
echo 'This is a foo test' | sed "s/\<$temp\>//g"