Terminal: diferencias a la hora de enlazar comandos

En ocasiones necesitarás ejecutar varios comandos seguidos para que se realice una tarea. Por ejemplo, quieres hacer unas modificaciones que dependen del Finder o del Dock y para ello, una vez introducidos los comandos con nuevas especificaciones o preferencias tienes que reiniciar alguna de las correspondientes aplicaciones.
Para enlazar la ejecución de dos comandos se utiliza & que permite realizar esta acción. También es posible utilizar ; para realizar esta acción.

¿Cuál es la diferencia entre ambas opciones? Con & se ejecutará el primer comando y solo si este ha tenido éxito (devuelve status 0, cero) entonces se ejecuta el segundo comando. Con ; se ejecuta el segundo comando independientemente del resultado del primero.

One Comment

  1. rodolfo@pilas.guru

    Este, creo que no es exacto el artículo.

    Para enlazar dos comandos y que se ejecute el segundo solo si el primero es exitoso se utiliza *&&* (dos símbolos &)

    Para enlazar dos comandos y que se ejecute el segundo solo cuando el primero da error se utiliza *||*

    Para enlazar comandos y que se ejecuten sucesivamente se utiliza *;* como correctamente se indica en el artículo.

    El simbolo *&* (un solo &) se utiliza para que el comando se ejecute en /background/