bash中sed unterminated s命令出错

bash中sed unterminated s命令出错,bash,sed,Bash,Sed,我在bash脚本中使用sed时遇到问题。 这是一句话: sed -i "s/"$name"/"$input"/g" ~/input.script 我得到了这个错误: sed:-e表达式#1,字符24:未终止的's'命令 奇怪的是,它在我的代码的早期版本中工作。我一直在解决问题,但找不到解决方案。您不需要嵌套引号。此外,请尝试更改delimeter: sed -i "s@$name@$input@g" ~/input.script 你的变量可能有一个换行符或斜杠,这让人困惑。@EtanReis

我在bash脚本中使用sed时遇到问题。 这是一句话:

sed -i "s/"$name"/"$input"/g" ~/input.script
我得到了这个错误: sed:-e表达式#1,字符24:未终止的's'命令


奇怪的是,它在我的代码的早期版本中工作。我一直在解决问题,但找不到解决方案。

您不需要嵌套引号。此外,请尝试更改delimeter:

sed -i "s@$name@$input@g" ~/input.script

你的变量可能有一个换行符或斜杠,这让人困惑。@EtanReisner我是个白痴。这就是错误所在。变量中有一个空格。空格只会导致不带引号的变量出现问题。因此,如果你像尤金尼奥·罗斯卡所说的那样移除它们,那么问题就应该消失了。换行符和斜杠一样仍然是一个问题。请参阅此处使用的
@
允许变量值中的
/
没有问题。它在变量值中将问题转换为
@
。因此,您需要选择输入中无法正确执行此操作的内容。@Etan Reisner:是的,我知道:)仍然感谢您的提及。无论如何,OP似乎解决了他的问题(等待解释…)。是的,那不是给你的,那是给OP/等等的。