编写一个bash脚本,将变量写入另一个文件中的行尾

时间:2013-03-01 03:56:57

标签: linux bash sed

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

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

我尝试将其放在带

的文件中

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

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

3 个答案:

答案 0 :(得分:2)

以下是否适用于您?

echo $inside_ip >> list.txt

答案 1 :(得分:2)

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

答案 2 :(得分:1)

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

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

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