2015-09-19 36 views
0

我將在3天內休假,所以我想在一個文件中完成一個任務,完成後使用bash腳本啓動另一個文件,我想要的方式做的是:第一次完成後啓動文件腳本

  • 名單在一個文件中的文件位置,即(toDo.txt
  • 一旦第一個文件是做它去到另一個。

實施例:

doDo.txt內容:

/home/me/www/some_dir/file1F42.sh 
/home/me/www/another_dir/fileD2cD.sh 
/home/me/www/third_dir/fileG0IU.sh 
/home/me/www/last_dir/fileVFpO.sh 

file1F42.sh

some commands here 

一旦完成後,應跳到線2,其是:fileD2cD.sh

我不想使用cron,因爲我不知道文件什麼時候會完成處理,並且同時我不想一次啓動所有文件。

這是一個真實的例子,我剛剛完成的事:

ffmpeg -i Original/$domainName"_"$fileName"_"$f-Original.mp4 -strict experimental -vf "drawtext=fontfile='/usr/share/fonts/truetype/freefont/FreeSansBold.ttf':text='www.alfirdaous.com':x="$SizeX":y="$SizeY":fontsize="$textSize":fontcolor=$textColor" -vcodec libx264 -preset medium -crf 24 -acodec copy Done/"$domainName"_"$fileName"_$f-Done.mp4 

mp4Box=$(MP4Box -add Done/"$domainName"_"$fileName"_$f-Done.mp4 "$domainName"_"$fileName"_$f.mp4) 

echo $mp4Box >> ffmpeg_exec.log; 

# Delete Done files 
rm Done/"$domainName"_"$fileName"_$f-Done.mp4 

# Get master thumbnail 
ffmpeg -itsoffset -150 -i "$domainName"_"$fileName"_$f.mp4 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 640x480 "$silsilaName"_$f.png 

n=0 
for offset in 140 160 180 200 220 240 260 280 300 320 
do 
printf -v outfile "$silsilaName"_"$f"_"%03d.png" "$((++n))" 

ffmpeg -itsoffset -$offset -i $domainName"_"$fileName"_"$f.mp4 -vcodec mjpeg -vframes 1 -an -f rawvideo -s 640x480 "$outfile" 

ffmpeg -i "$domainName"_"$fileName"_$f.mp4 -vn -ar 44100 -ac 2 -ab 128 -f mp3 $f.mp3 
done 

最後的命令行是: 的ffmpeg -i 「$則domainName」 「$文件名」 $ f.mp4 -vn -ar 44100 -ac 2 -ab 128 -f mp3 $ f.mp3

我怎麼知道它是完成,完成,所以我可以去我的文件列表「doDo.txt」並開始運行下一個文件?

+0

你的命令的文件已經是一個有效的腳本。 – tripleee

+0

一旦生成todo.txt,只需運行:sh todo.txt – sureshvv

+0

我編輯我的問題上面的一個真實的例子 –

回答

0
#! /bin/sh 

while read file; do 
    echo "Executing $file" 
    sh "$file" 
done < /dev/stdin 

在哪裏使用是<script.sh> < file_list

+0

謝謝s8129,但哪個文件將執行?執行 sh::沒有這樣的文件或目錄 –

+0

while語句的第一行輸出到stdout是什麼?說實話,我已經完全推翻了這一點,並且,正如tripleee對您的原始帖子所述的評論,您擁有的文件列表應該是可用的(假設所有文件都是可執行的)。如果沒有,請在包含所有這些文件的目錄中運行'chmod 775 * .sh' – s8129

+0

我使用一個實例編輯了我的問題 –

相關問題