Linux [SED]放入shell脚本时的奇怪行为

Linux [SED]放入shell脚本时的奇怪行为,linux,sed,Linux,Sed,当我这样做的时候 sed 1s/#text_to_be_replaced#/replacement_string/ filename 然后输出与预期的一样,但是当我将其放入shell文件中时 这样做 lineNumber=1 sed $lineNumbers/#text_to_be_replaced#/replacement_string/ filename 然后它就不能像预期的那样工作,替换字符串被插入到要替换的文本上方的一行。为什么会这样?应该是: sed "${lineNumber}s

当我这样做的时候

sed 1s/#text_to_be_replaced#/replacement_string/ filename
然后输出与预期的一样,但是当我将其放入shell文件中时 这样做

lineNumber=1
sed $lineNumbers/#text_to_be_replaced#/replacement_string/ filename
然后它就不能像预期的那样工作,
替换字符串
被插入到要替换的
文本上方的一行
。为什么会这样?

应该是:

sed "${lineNumber}s/text_to_be_replaced/replacement_string/" filename
应该是:

sed "${lineNumber}s/text_to_be_replaced/replacement_string/" filename

将空的
$$lineNumbers
替换为
${lineNumbers}s
,即
1s
,并告知它是否给出了所需的结果。我还强烈建议在
sed
之后加上引号。将
$lineNumbers
替换为
${lineNumbers}s
,即
1s
,并告诉它是否给出了所需的结果。我还强烈建议在
sed
之后加上引号。