GNU/Linux >> Tutoriales Linux >  >> Linux

'&&' vs. '&' con el comando 'test' en Bash

& ejecuta un comando en segundo plano y devolverá 0 independientemente de su estado.

Desde la página del manual:

Si un comando es terminado por el operador de control &, el shell ejecuta el comando en segundo plano en un subshell. El shell no espera a que finalice el comando y el estado de retorno es 0. Comandos separados por un; se ejecutan secuencialmente; el shell espera a que cada comando termine a su vez. El estado de retorno es el estado de salida del último comando ejecutado.


Mira cuáles son tus comandos:

test -x examples.desktop  && echo $?

Esto significa verificar si examples.desktop es ejecutable y si lo es, ejecute echo $? .

test -x examples.desktop  & echo $?

significa verificar si examples.desktop es ejecutable en el "fondo". Luego ejecuta echo $? .


El significado de && y & son intrínsecamente diferentes.

  • ¿Qué es &&? en Bash? En Bash, y muchos otros lenguajes de programación, && significa “Y”. Y en un contexto de ejecución de comandos como este, significa elementos tanto a la izquierda como a la derecha de && debe ejecutarse en secuencia en este caso.
  • ¿Qué es &? en Bash? Y un solo & significa que los comandos anteriores, inmediatamente a la izquierda del & —simplemente debe ejecutarse en segundo plano.

Así que mirando tu ejemplo:

[email protected]:~$ test -x examples.desktop  && echo $?
[email protected]:~$ test -x examples.desktop  & echo $?
[1] 2992
0

El primer comando, tal como está estructurado, en realidad no devuelve nada. Pero el segundo comando devuelve un [1] 2992 en el que el 2992 hace referencia al ID del proceso (PID) que se ejecuta en segundo plano y al 0 es la salida del primer comando.

Dado que el segundo comando solo ejecuta test -x examples.desktop en segundo plano, sucede con bastante rapidez, por lo que la ID del proceso se genera y desaparece de inmediato.


Linux
  1. Comando Bash wait con ejemplos

  2. Comando wc Linux con ejemplos

  3. Comando Nohup con ejemplos

  4. Comando JQ en Linux con ejemplos

  5. El último tutorial de Bash Array con 15 ejemplos

El comando make de Linux explicado con ejemplos

Usando el comando GREP en Linux con ejemplos

El tutorial del comando fc con ejemplos para principiantes

Comando Bash Echo explicado con ejemplos en Linux

Bash Scripting - Comando Printf explicado con ejemplos

Comando de historial con ejemplos