1

我正在尝试向 bash 脚本添加一行,该脚本执行许多其他操作,而我想要它做的是写入另一个文件的行尾。我有一个文件,其中包含一行 IP 地址,都是一行。我编写的这个脚本要求用户输入,其中一个要求是 IP 地址。它被存储为一个变量 inside_ip 我想把它写到另一个文件的行尾。我发现了一个类似的问题,解决方案是

sed -i.bck '$s/$/yourText2/' list.txt

我试图把它放在一个文件中

sed -i.bck '$s/$/ $inside_ip/' list.txt

但它实际上将 $inside_ip 写入文件末尾,所以我只需要它来打印变量。

4

3 回答 3

2

以下内容对您有用吗?

echo $inside_ip >> list.txt
于 2013-03-01T04:05:53.000 回答
2

使用"'s 而不是''s 如sed -i.bck "s/$/ $inside_ip/" list.txt

于 2013-03-01T04:08:28.757 回答
1

单引号阻止变量被扩展。双引号允许它们被扩展。因此:

sed -i.bck '$s/$/ '"$inside_ip/" list.txt

这保护了$s单引号;您想sed查看$s,而不是(可能未设置的)shell 变量的值$s。当然,如果文件只包含一行,那么前导$并不重要;您可以将其排除在外,或将其替换为1. /$/无论如何都会留下,但后面的双引号会扩展变量,保留其中的任何空格(尽管 IP 地址通常不包含空格)。

于 2013-03-01T04:08:22.467 回答