agi-bin中的Bash脚本无法执行 - 星号

时间:2011-01-29 09:02:49

标签: bash scripting asterisk telephony

我正在尝试从我的拨号方案中执行bash脚本。 bash脚本来自projectFiles中的目录/var/lib/asterisk/agi-bin。当我尝试执行脚本时,如下所示:

exten => 0,n,System(/var/lib/asterisk/agi-bin/projectFiles/main.sh ${RECORDED_FILE}.wav ${SOUND_PATH}/menus/wav2.wav)  

我最终得到以下错误:

WARNING[27515]: app_system.c:125 system_exec_helper: Unable to execute '/var/lib/asterisk/agi-bin/projectFiles/main.sh /tmp/rec62.wav /var/lib/asterisk/sounds/en/projects/menus/wav2.wav'
  == Spawn extension (test-project, 0, 5) exited non-zero on 'DAHDI/15-1'   

脚本main.sh的权限设置为asterisk as owner and group。我哪里可能出错?

非常欢迎任何帮助,
斯利拉姆。

2 个答案:

答案 0 :(得分:0)

我遇到了同样的问题并找到了另一个可能很常见的原因: 我在Windows上创建了脚本,并以二进制模式复制。文本文件在每一行包含隐藏的^ M.我删除了所有这些,一切都很好!错误信息当然极具误导性!

答案 1 :(得分:-1)

agi-bin中的脚本main.sh未成功执行。因此错误消息。 main.sh中的一行复制了当前工作目录的输入参数的$1,我假设它与放置脚本的目录相同。 {* 1}}用于星号(以及执行所有脚本的位置)$HOME。所以,如下所示:

/etc

会将cp $1 . 复制到$1。这导致脚本进一步恶化。改变这一行可以使一切正常。