我正试图在bash脚本中添加一行代码来完成一堆其他任务,我希望它能在另一个文件中写入一行代码的末尾。我有一个包含一行IP地址的文件。我编写的这个脚本要求用户输入,其中一个要求的是IP地址。它作为一个变量存储在IP中,我想把它写到另一个文件的一行的末尾。我发现了一个类似的问题

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

我试着把它归档
sed -i.bck '$s/$/ $inside_ip/' list.txt
但实际上它在IP中把$写到文件的末尾,所以我只需要它来打印变量。

最佳答案

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

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

这保护了单引号中的$s;您希望sed看到$s,而不是您的(可能未设置的)shell变量$s的值。当然,如果文件只包含一行,那么前导的$就不是关键的;您可以省略它,或者用1替换它。无论如何,/$/将保持独立,但是后面的双引号将展开变量,保留变量中的任何空格(尽管IP地址通常不包含空格)。

关于linux - 编写一个bash脚本,该脚本将变量写入另一个文件的行末,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15150246/

10-11 22:43