Ejecución de multiples comandos subsecuentes en una línea en la terminal de Linux

Necesito ejecutar varias líneas de un comando para convertir videos  (en este caso con mencoder) y no quiero hacerlo uno por uno lo cual sería así:

mencoder "Película A (a convertir).mp4" -o "Película A (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255



y después de que se haya terminado de convertir esa película (tengo que estar allí presente) debo poner en la terminal:

mencoder "Película B (a convertir).mp4" -o "Película B (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255



y luego después de que se haya terminado de convertir esa película debo poner en la terminal:

mencoder "Película C (a convertir).mp4" -o "Película C (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255



SOLUCIÓN:

La Solución es usar doble && y no debo estar presente sino cuando se terminde de procesar la primer película seguirá automáticamente la siguiente:

mencoder "Película A (a convertir).mp4" -o "Película A (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
mencoder "Película B (a convertir).mp4" -o "Película B (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
mencoder "Película C (a convertir).mp4" -o "Película C (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \


Ejemplo:

mencoder "La Mujer del Predicador.mp4" -o "./Mencoder/La Mujer del Predicador.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && \
mencoder "Triunfo En La Adversidad.mp4" -o "./Mencoder/Triunfo En La Adversidad.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2491:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192 && \
mencoder "El campamento de mi vida castellano.mp4" -o "./Mencoder/El campamento de mi vida castellano.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2399:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=320 && \
mencoder "La decisión de Alison.mp4" -o "./Mencoder/La decisión de Alison.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2836:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192 && \
mencoder "Policarpo.mp4" -o "./Mencoder/Policarpo.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2802:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192 && \
mencoder "Por la Gloria.mp4" -o "./Mencoder/Por la Gloria.mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2441:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=192


Vista en el Editor de texto Geany:






Nota: Tengo configurado ese archivo así:




Esto porque signfica:

A && B && C # Ejecutar B si y sólo si A finalizó con exito y luego ejecutar C si y sólo si B se ejecutó con exito, etc

y la barra inversa \ hace que se ejecute la siguiente línea de abajo (salto de línea)

Nota: Yo se que se podría así:

mencoder "Película A (a convertir).mp4" -o "Película A (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255 && mencoder "Película B (a convertir).mp4" -o "Película B (convertida).mp4" -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=1362:vpass=1 -ffourcc DX50 -oac mp3lame -lameopts br=255


Pero el problema de hacerlo así es que no es muy bien entendible, no se puede leer bien lo que está allí, luego es dificil editar los comandos porque sería dificil encontrar las cosas allí dentro de esa maraña porque los nombres de las películas no son cortos


CONSULTAS:

Barra inversa - Wikipedia, la enciclopedia libre
https://es.wikipedia.org/wiki/Barra_inversa

Backslash - Wikipedia
https://en.wikipedia.org/wiki/Backslash

& - Wikipedia, la enciclopedia libre
https://es.wikipedia.org/wiki/%26#Usos_en_inform%C3%A1tica

Ampersand - Wikipedia
https://en.wikipedia.org/wiki/Ampersand#Computing

bash - Which one is better: using ; or && to execute multiple commands in one line? - Ask Ubuntu
https://askubuntu.com/questions/334994/which-one-is-better-using-or-to-execute-multiple-commands-in-one-line
https://askubuntu.com/a/539293/145772

Linux Bash Syntax: Meaning of &&, \, and - - Server Fault
https://serverfault.com/questions/53577/linux-bash-syntax-meaning-of-and
https://serverfault.com/q/53577/800907

Comentarios

  1. Buenas

    En ese caso creo que es mejor que pongas `comando0` ; `comando1`.
    De esta forma aunque falle la primera ejecución seguirá con la siguiente.
    Si estás transformando películas luego miras las que no hayan cambiado el formato y lo relanzas.

    ResponderBorrar
    Respuestas
    1. Hola Nideapum, gracias por el comentario, bueno es que así lo entiendo bien yo

      Borrar

Publicar un comentario