我有这个sed命令可以从shell运行
Optional<UIView>
从sh脚本运行它不起作用:
/bin/sed -i -e '/^\['"9876"'\]/ r /etc/asterisk/tmp_'"9876"'.txt' /etc/asterisk/sip_peers.include
$ ext是一个环境变量,当我将printenv传递给文本文件时它仍然存在。 $ ext变量也传递给output.txt用于测试目的。
sip_peers.include,其中/etc/asterisk/tmp_$ext.txt的值将在[]后插入:
#!/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
输出zoutput.txt:
[9876]
qualify=yes
nat=yes
call-limit=4
....
来自zprintenv.txt的片段:
/etc/asterisk/tmp_9876.txt 9876
输出$ tmp:
contacts=1
vm=1
ext=9876
emergency_trunk=
callerid_override=
enduser_company_contacts=0
.....
请看一下,我几个小时都找不到错误。 非常感谢
答案 0 :(得分:0)
引用OP评论:
这是一个运行时问题
该脚本是从gui调用的,文件sip_peers.include在执行脚本后存储。所以sed无法处理不存在的文件。
(这似乎是一个可能对其他人感兴趣的用例。所以我通过引用OP评论的答案来制作Q / A对。 将建议的编辑与标题相匹配,以便由具有类似问题的用户找到。)