2
我有作品從外殼運行sed的傳遞變量環境
/bin/sed -i -e '/^\['"9876"'\]/ r /etc/asterisk/tmp_'"9876"'.txt' /etc/asterisk/sip_peers.include
從sh腳本運行它運行這個sed的命令,這是行不通的:
#!/bin/bash
peers=/etc/asterisk/sip_peers.include
tmp=/etc/asterisk/tmp_$ext.txt
var=`cat < $tmp`
printenv > /etc/asterisk/zprintenv.txt
echo $tmp $ext > /etc/asterisk/zoutput.txt
/bin/sed -i -e '/^\['"$ext"'\]/ r /etc/asterisk/tmp_'"$ext"'.txt' /etc/asterisk/sip_peers.include
$ ext是一個環境當我將printenv傳遞給文本文件時,它仍然存在。另外$ ext變量被傳遞給output.txt用於測試目的。
sip_peers.include,其中來自/etc/asterisk/tmp_$ext.txt的值將後[]插入:
[9876]
qualify=yes
nat=yes
call-limit=4
....
輸出zoutput.txt:從
/etc/asterisk/tmp_9876.txt 9876
片斷zprintenv.txt:
contacts=1
vm=1
ext=9876
emergency_trunk=
callerid_override=
enduser_company_contacts=0
.....
輸出$ TMP:
;mac=e02f6d613554
;model=spa504G
請看看它,我無法找到小時以來的錯誤。 非常感謝
這裏'ext'變量的值是什麼?它不存在於這裏,你能分享你試過的輸入文件嗎? – Inian
嗨,我已更新我的問題。 – calabash
這一個解決了。這是一個運行時間問題。該腳本是從gui調用的,而腳本執行後會存儲sip_peers.include文件。所以sed不能寫入這個文件。感謝您的幫助,併爲此感到困惑 – calabash