¿Cómo ejecutar automáticamente un comando cada vez que finaliza un determinado comando?

¿Cómo ejecutar automáticamente un comando cada vez que finaliza un determinado comando?

Ejemplo: una vez que el add-apt-repositoryproceso haya finalizado, ejecútelo inmediatamente apt-get update, sin tener que ingresar el comando manualmente.

¿Hay alguna forma de hacer esto? ¿Es posible establecer dicha combinación sin el uso de la sudocontraseña? (aunque no me importa de ninguna manera)

Estoy preguntando lo siguiente:¿Cómo puedo vincular dos comandos entre sí, de modo que cada vez que ejecute un comando en particular,siempreejecuta el comando vinculado después de él?

Respuesta1

Como normalmente,

sudo bash -c "command1; command2"

Si desea ejecutar el comando2 solo después de que el comando1 se haya completado exitosamente, puede usar as &&en lugar de ;.

sudo bash -c "command1 && command2"

Usaré el siguiente comando para tu ejemplo.

sudo bash -c "add-apt-repository <repo> && apt-get update"

Respuesta2

Hay varios problemas al conectarse a esto con un alias o una función bash simple, pero puede escribir un pequeño contenedor para un comando y pegarlo en /usr/local/binel que tenga prioridad en su ruta.

Esto es unpequeño truco para crear un script y modificarlo al mismo tiempo.
Volcará un script contenedor ejecutable en formato /usr/local/bin/add-apt-repository.

sudo install -b -m 755 /dev/stdin /usr/local/bin/add-apt-repository << 'EOF'
#!/bin/sh
/usr/bin/add-apt-repository "$@"
apt-get update
EOF 

Para revertir esto, simplemente elimine /usr/local/bin/add-apt-repository.

Si desea hacer algo más fructífero (como vincular apt-get instally apt-get updateasí actualizar siempre antes de instalar), solo necesitamos expandir el script para ver los argumentos.

sudo install -b -m 755 /dev/stdin /usr/local/bin/apt-get << 'EOF'
#!/bin/sh
if [ "$1" = "install" ] ; then
    /usr/bin/apt-get update
fi
/usr/bin/apt-get "$@"
EOF 

Aunque considere que esto ejecutará una actualización antescada apt-get installllamar. Esto puede parecer útil, pero en la práctica puede resultar muy tedioso.

Respuesta3

Para ejecutar ciertos comandos en una secuencia particular, se utilizan scripts de shell. Todo lo que tienes que hacer es: Abrir la terminal presionando Ctrl+ Alt+ T Y seguir los pasos:
1. Escribe gedit filename.sh
2. Después de ingresar este comando, se abrirá un editor de texto, donde podrás escribir los comandos requeridos, uno en cada línea. Por ejemplo,
sudo add-apt-repository
apt-get update
3. Después de escribir todos los comandos, guarde y salga usando la GUI o presione Ctrl+ Sy Ctrl+ Q.
4. Ahora volverás a la terminal. Ejecute sh filename.shen la terminal y sus comandos se ejecutarán, siempre que no haya ningún error en sus comandos.
Además, si inicia sesión desde una cuenta de superusuario (root), no tendrá que escribir sudosu comando.

Respuesta4

La forma más sencilla de hacerlo es ejecutar:

sudo add-apt-repository <ppa_name> && sudo apt-get update

Si el primer comando finaliza con éxito, se ejecutará el segundo.

información relacionada