2016-09-08 2 views
0

Я пытаюсь написать функцию для запуска серии команд, но я понятия не имею, с чего начать.Напишите функцию для запуска серии команд, zsh

Это серия команд, которые я хочу запустить.

find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libx264 -vf scale=854:480 -cpu-used 5 -threads 8 "${0%%.mp4}-copy.mp4"' {} \; 
touch -r video.mp4 video-copy.mp4 
rm -rf video.mp4 
mv video-copy.mp4 video.mp4 
find ./ -name '*.mp4' -exec bash -c 'qt-faststart "$0" "${0%%.mp4}-fs.mp4"' {} \; 
touch -r video.mp4 video-fs.mp4 
rm -rf video.mp4 
mv video-fs.mp4 video.mp4 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \; 
touch -r video.mp4 video.webm 
find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 -r 1 -vf scale=-1:480 -f image2 "${0%%.mp4}.jpg"' {} \; 
touch -r video.mp4 video.jpg 
mv video.jpg thumbnail.jpg 

Может кто-нибудь мне помочь.

ответ

0

Просто заверните свои команды в <funcname>() { ... }.

foo() { 
    find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libx264 -vf scale=854:480 -cpu-used 5 -threads 8 "${0%%.mp4}-copy.mp4"' {} \; 
    touch -r video.mp4 video-copy.mp4 
    rm -rf video.mp4 
    mv video-copy.mp4 video.mp4 
    find ./ -name '*.mp4' -exec bash -c 'qt-faststart "$0" "${0%%.mp4}-fs.mp4"' {} \; 
    touch -r video.mp4 video-fs.mp4 
    rm -rf video.mp4 
    mv video-fs.mp4 video.mp4 
    find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -vcodec libvpx -acodec libvorbis -vf scale=-1:480 -cpu-used 5 -threads 8 "${0%%.mp4}.webm"' {} \; 
    touch -r video.mp4 video.webm 
    find ./ -name '*.mp4' -exec bash -c 'ffmpeg -i "$0" -ss 00:00:10 -vframes 1 -r 1 -vf scale=-1:480 -f image2 "${0%%.mp4}.jpg"' {} \; 
    touch -r video.mp4 video.jpg 
    mv video.jpg thumbnail.jpg 
} 
Смежные вопросы