agi bin中的Bash脚本无法执行-星号
我正在尝试从拨号计划中执行bash脚本。bash脚本来自agi bin中的Bash脚本无法执行-星号,bash,scripting,asterisk,telephony,Bash,Scripting,Asterisk,Telephony,我正在尝试从拨号计划中执行bash脚本。bash脚本来自/var/lib/asterisk/agi-bin中的目录projectFiles。当我尝试执行脚本时,如下所示: 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:
/var/lib/asterisk/agi-bin
中的目录projectFiles
。当我尝试执行脚本时,如下所示:
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作为所有者和组
。我哪里会出错
欢迎任何帮助,Sriram.agi bin中的脚本,
main.sh
未成功执行。因此出现了错误消息。main.sh
中的一行将输入参数的$1
复制到当前工作目录中,我假设该目录与脚本所在的目录相同<星号的代码>$HOME是/etc
(以及它执行所有脚本的位置)。下面是一行:
cp $1 .
将
$1
复制到/etc
。这导致了剧本的进一步混乱。更改该行使一切正常。我遇到了相同的问题,并找到了另一个原因,这可能是常见的:
我已经在Windows上创建了脚本,并以二进制模式复制过来。文本文件的每一行尾都包含隐藏的^M。我把它们都拿走了,一切都很好!错误信息当然是极其误导的 您显示了所有权,那么权限呢?您是否已执行了
chmod ug+x main.sh
以使其可执行?@Dennis:是的,此脚本具有755权限可执行。当您手动运行命令时会发生什么情况,正如错误消息中引用的那样?如果星号表示它不是零,那很可能意味着脚本中发生了错误。@payne:这就是问题所在。请参阅下面我对这个问题的答案。是否有办法查看使用系统命令从dialplan调用脚本时返回的值?这可能会使我在将来避免犯这些错误。@Sriram,仅供使用。它的工作原理与系统命令类似,但返回脚本结果。