我試圖從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