Хочу написать простейший сценарий shell. Надо проконсультироваться. Вобщем необходимо, чтобы выполнялись две команды, причем вторая только после полного выполнения первой. Это декод видео в два прохода.
Т.е. в консоли я ввожу последовательно (перейдя до этого в нужную дирку):
# mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
затем
# mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
Вот и все. Просто неохота ждать, чтобы ввести вторую самостоят-но. Лучше чайку попить. Потом сам уже поэкспериментирую с [ ].
Таким образом был бы признателен за полное содержимое сего сценария. И уж совсем признателен за сопутствующие комменты (кроме уровня моего интеллекта)) о нем сам догадываюсь).
Re: Новичку. Про последовательность команд. #1
создаете файл (скрипт) с таким содержимым:
#!/bin/bash
cd /dir/bla-bla
echo "decoding first file"
# mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
echo "decoding second file"
# mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
делаете ваш файл исполняемым chmod 777 file
запускаете его
Для изучения bash советую ABS - Advanced Bash Skripting guide
Re: Новичку. Про последовательность команд. #2
Две строки в SHELL скрипте
>CUT HERE<
#! /bin/bash
# Выполняем одно
mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi
# Потом выполняем второе(после выполнения первого).
mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.avi
>CUT HERE<
Хотя можно обойтись и без скрипта. Достигается использованием специального символа разделителя (;) которые интерпретируется BASH как
Внимание, перенос на следующую строку воспринимать как проблему форматирования... Все должно быть в одной строке...
mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=1 -oac copy -o movie.avi ; mencoder vts_01_1.vob -ovc lavc -lavcopts vcodec=mpeg4:vpass=2 -oac copy -o movie.aviАдмин админу - друг, товарищ и ман...
(c) Almaty
Re: Новичку. Про последовательность команд. #3
Конструкция с `;' приведет к безусловному выполнению второго операнда.
Возможно, имеет смысл (оптимальнее в данном случае) использовать `&&'.
Long Live!
Re: Новичку. Про последовательность команд. #4
2woodoo
+1!
Re: Новичку. Про последовательность команд. #5
Админ админу - друг, товарищ и ман...
(c) Almaty
Re: Новичку. Про последовательность команд. #6
Бесспорно, как и совет "abs - must have". :good:
Long Live!