Usar &&operador,
cmd1 && cmd2 && cmd3
En shellscripting, &&y los ||operadores se modelan después de la implementación optimizada de operadores lógicos en C. &&significa operador AND, y ||significa OR. Unix está estrechamente relacionado con C, y en C, el segundo operando de operadores lógicos no se evalúa si el resultado ya se conoce del primer operando. Por ejemplo, "false && x"es falsepara cualquier x, por lo que no hay necesidad de evaluar x(especialmente si se xtrata de una llamada de función); igualmente para "true || x". Esto también se llama semántica de cortocircuito .
Y en Unix, es tradicional interpretar los valores de retorno de los comandos como valores de verdad de "finalización exitosa": el código de salida 0 significa true(éxito), no cero significa false(falla). Entonces, cuando el primer comando en cmd1 && cmd2retorna "false"(estado de salida distinto de cero, que indica falla), se conoce el estado del comando compuesto: falla. Entonces, la interpretación general de cmd1 && cmd2 puede ser: "ejecutar cmd1, Y ENTONCES, si no falla cmd2". Que es lo que básicamente quieres en tu pregunta.
De manera similar con OR: cmd1 || cmd2puede interpretarse como "ejecutar cmd1, O SI falla cmd2".
Protip: para cadenas más largas de &&, considere poner set -een su script. Básicamente cambia el punto ;y coma en &&, con un par de casos especiales.