簡體   English   中英

如何將帶有空格的參數傳遞給sed命令?

[英]How to pass an argument with spaces to sed command?

我的shell腳本中有以下功能

fnChangeTxt()
{
        sed -i 's/<div id="'$1'"><p>*.*</<div id="'$1'"><p>'$2'</' /var/www/html/alarm.html
}

我想在下面使用通過$ 2參數將字符串傳遞給sed命令。

fnChangeTxt 'demo' 'This text to sed'

但是,這無法正常工作並產生錯誤,我認為這是由於空格所致,因為以下命令可以正常工作。

fnChangeTxt 'demo' 'This_text_to_sed'

有沒有辦法用空格做到這一點?

提前致謝。

將參數( $1等)括在雙引號中,以防止它們被單詞分割(並防止其他可能不愉快的額外解析):

sed -i "s/<div id=\"$1\"><p>*.*</<div id=\"$1\"><p>$2</" /var/www/html/alarm.html

嘗試使用轉義字符:

fnChangeTxt 'demo' 'This\ text\ to\ sed'

暫無
暫無

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

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