单个 bash 脚本中的多个顺序执行任务
Multiple sequential exec tasks in a single bash script
我正在尝试 运行 在从 php 脚本触发的 bash 脚本中执行以下两个任务。当我注释掉另一个时,这两个都正确执行,所以这显然是我错误地布置完整工作的方式。
它们应该运行顺序,而不是并行,所以第一个执行程序需要在第二个执行程序开始之前完成...
我还应该注意,变量是从触发它的 php 脚本传递过来的(以防相关)。
#!/bin/bash
Udata1=
Udata2=
#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?
exec
将当前 运行 进程替换为衍生进程。它永远不会 returns。你不能 exec
那样做两件事。
也就是说你不需要。只需从这两行中删除 exec
,它应该可以正常工作。
我正在尝试 运行 在从 php 脚本触发的 bash 脚本中执行以下两个任务。当我注释掉另一个时,这两个都正确执行,所以这显然是我错误地布置完整工作的方式。
它们应该运行顺序,而不是并行,所以第一个执行程序需要在第二个执行程序开始之前完成...
我还应该注意,变量是从触发它的 php 脚本传递过来的(以防相关)。
#!/bin/bash
Udata1=
Udata2=
#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?
exec
将当前 运行 进程替换为衍生进程。它永远不会 returns。你不能 exec
那样做两件事。
也就是说你不需要。只需从这两行中删除 exec
,它应该可以正常工作。