¿Redireccionar el script bash a/dev/null no se ejecuta?

así que soy muy nuevo en bash y estaba haciendo un instalador para build-essential y OpenSSL. El problema es que siempre se detiene después de la primera exec línea. Aquí está mi código:

#!/bin/bash
echo "Installing build-essential"
exec sudo apt-get install build-essential > /dev/null 2>&1
echo "Finished installing build-essential"
echo ""

echo "Installing OpenSSL"
exec sudo apt-get install openssl > /dev/null 2>&1
echo "Finished installing OpenSSL"
echo ""

echo "Updates complete!"

Y aquí está el resultado:

Installing build-essential
[sudo] password for matthew:

Por favor, tenga en cuenta que acabo de empezar hace unas horas. Lo siento por la pregunta de volcado.

preguntado el 12 de junio de 12 a las 20:06

¿Por qué pusiste exec allí? -

1 Respuestas

exec nunca vuelve al guión de llamada. Reemplaza el proceso actual con el siguiente comando exec. Solo quita el exec por completo, y deje que apt-get se ejecute como cualquier otro comando.

Nota: hay usos de exec que do volver al script de llamada, como los que , solamente hacer redirección de E/S.

Respondido el 12 de junio de 12 a las 21:06

exec no regresará cuando se use para sustituir el proceso actual, pero no detendrá el script actual cuando se use únicamente para administrar descriptores de archivos. Eliminar exec es lo correcto, pero la explicación es engañosa. - Todd A. Jacobs

Buena aclaración, agregaré eso a mi respuesta: Chepner

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.