我正在尝试在bash脚本中添加一行来执行其他一些操作,我想要它做的是写入另一个文件中的行尾。我有一个IP地址行的文件,这一行都是一行。我写的这个脚本要求用户输入,其中一个要求的是IP地址。它被存储为一个变量inside_ip我想把它写到另一个文件的一行的末尾。我找到了一个类似的问题,解决方案是
sed -i.bck '$s/$/yourText2/' list.txt
我尝试将其放在带
的文件中 sed -i.bck '$s/$/ $inside_ip/' list.txt
但它实际上将$ inside_ip写入文件的末尾,所以我只需要它来打印变量。
答案 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地址通常不包含空格)。