Можно хотеть попробовать:
eval rm foo.{$ext0..$extN}
Не уверенный, является ли это лучшим ответом, но это, конечно - то.
Единственный способ, которым может быть достигнут оператор, состоит в том если exec
самостоятельно сбои; если это успешно выполняется, ffmpeg
управляйте заменяет оболочку полностью. (Педантично, &&
перестанет работать в этом случае также, таким образом, это не может быть достигнуто вообще.) Вы не хотите exec
это, просто выполняет его.
exec command
оператор заменяет текущую оболочку command
. Таким образом, Ваш сценарий на самом деле завершается в строке exec ffmpeg ...
; остающиеся строки были бы выполнены если и только если ffmpeg
команда не найдена на Вашем ПУТИ (или это не может быть запущено по другим причинам).
Можно надеть больше деталей exec
удар, встроенный путем ввода help exec
в командной строке удара:
$ help exec
exec: exec [-cl] [-a name] [command [arguments ...]] [redirection ...]
Replace the shell with the given command.
Execute COMMAND, replacing this shell with the specified program.
ARGUMENTS become the arguments to COMMAND. If COMMAND is not specified,
any redirections take effect in the current shell.
[...]
Согласно этому exec
заменяет оболочку командой, которую Вы указываете. Таким образом, Ваш сценарий никогда не добирается до команд мимо exec
.
Вам не нужно exec
. Просто укажите команду.
Можно сохранить exec
управляйте, помещаете ли Вы его в подоболочку:
- exec ffmpeg -i "$1" -ab 256k "$BASEFILENAME.mp3" &&
+ (exec ffmpeg -i "$1" -ab 256k "$BASEFILENAME.mp3") &&
&&
после того, как ffmpeg управляют, чтобы это на самом деле работало. У меня все еще есть еще один вопрос, если это хорошо в этом месте - там способ отобразить stdout и stderr ffmpeg где-нибудь, не используя окно терминала? Как в zenity f.e. – tesseract 21.06.2011, 23:41$()
создайте в переменную, затем передайте ту переменнуюzenity
. Не упустите заключение в кавычки, иzenity
по моему опыту, PanGo использования, таким образом, необходимо заменить<
,&
,>
с<
,&
,>
соответственно. – geekosaur 21.06.2011, 23:45