我试图从bash脚本触发的bash脚本中运行以下两个任务。当我将其他注释掉时,这两个都正确执行,这显然是我错误地布置完整作业的方式。单个bash脚本中的多个连续执行任务
他们应该按顺序运行,而不是并行的,所以第一个EXEC需要完成第二个开始前...
我也应该注意到,这些变量被从PHP脚本,通过传递触发它(如果它是相关的)。
#!/bin/bash
Udata1=$1
Udata2=$2
#Encode incoming audio file to 128k MP3 using avconv
exec avconv - i /var/www/html/tracks/$Udata1/$Udata2 -ab 128k /var/www/html/tracks/$Udata1/serve/$Udata2.128k.mp3;
#Encode 128k MP3 generated above to WAV using avconv
exec avconv -i /var/www/html/tracks/$Udata1/serve/$Udata2.128k.mp3 /varwww/html/dump/$Udata2.wav
exit;
我想我最好问的是如何在同一个.sh脚本中运行多个exec?
'一个bash脚本被一个php脚本触发'确保你非常清楚这样做的安全含义。 – 2015-02-12 00:08:24
是的,我完全知道谢谢。通过一个包含在完全不同的PHP页面上的方式调用这个PHP。这并不是说这只是坐在网络服务器上供访问者点击。当然有人知道他们在做什么和寻找什么可能会违反它,但是真的不是这样吗?我欣赏这个建议。 – Grant 2015-02-12 00:20:00
将PHP配置为允许它执行操作系统进程的安全性要远远低于不进行配置。在这种情况下,我通常会根据需要设置一个标志(在数据库,文件系统等中),或者将某些内容推送到消息队列中以触发外部进程运行,而不是直接启动进程。 – 2015-02-12 00:23:39