Answers:
在bash
单引号中,单引号用于固定的文字字符串。在需要进行变量插值,命令替换等的地方使用双引号。
您的sed
命令需要同时使用文字$
(以便i
命令应用于文件的最后一行)和 $NAME
要插入的变量。为此,您需要$
使用反斜杠“转义”文字,以便shell不会将$i
您的sed脚本中的内容解释为“替换为变量$ i的内容”而不是“literal $
后跟literal i
”:
顺便说一句,最好不使用该-i
选项来测试这样的事情,这样sed
在你弄清楚正确的语法时不会搞砸你的输入文件。-i
当你确定它正在按照你想要的那样做时,添加后者。
$ NAME=name
$ sed "\$i $NAME" file.list
one
two
three
four
name
five
sed "\$i $NAME" file.txt
?