簡體   English   中英

編寫一個bash腳本,該腳本將變量寫入另一個文件的行末

[英]Writing a bash script that writes a variable to the end of a line in another file

我試圖將一行添加到一個bash腳本中,該腳本執行許多其他工作,而我要執行的操作是將另一個文件中的一行寫入末尾。 我有一個文件,其中包含一行IP地址。 我寫的這個腳本要求用戶輸入,它要求的其中之一是IP地址。 那被存儲為變量inside_ip,我想把它寫到另一個文件的行尾。 我發現了類似的問題,解決方案是

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

我試圖把它放在一個文件中

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

但實際上它會將$ inside_ip寫入文件的末尾,因此我只需要它來打印變量。

以下內容對您有用嗎?

echo $inside_ip >> list.txt

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

單引號阻止變量被擴展。 雙引號允許它們被擴展。 因此:

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

這樣可以用單引號保護$s 您希望sed查看$s ,而不是(可能未設置的)shell變量$s 當然,如果文件僅包含一行,則前導$並不關鍵; 您可以忽略它,或將其替換為1 /$/仍然會保留,但是后面的雙引號會擴展變量,並保留其中的任何空格(盡管IP地址通常不包含空格)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM