Utilice el comando amp;amp;\||\{} en shell
Cómo usar amp; amp; y || en shell
amp; operador:
comando1 ?amp;
Después de que el comando de la izquierda (Comando 1) devuelve verdadero (es decir, devuelve 0 y se ejecuta correctamente), el comando de la derecha (Comando 2) se puede ejecutar en otras palabras, "si Si este comando; se ejecuta con éxito, luego ejecute este comando".
El formato de sintaxis es el siguiente:
comando1 amp; comando2 [amp; comando3 ...]
1 Utilice amp; entre comandos. Conéctese para realizar la función de AND lógico.
2 Solo si el comando a la izquierda de amp;amp; devuelve verdadero (valor de retorno del comando $? == 0), se ejecutará el comando a la derecha de amp;amp;
3 Siempre que un comando devuelva falso (valor de retorno del comando $? == 1), los comandos posteriores no se ejecutarán.
Ejemplo 1
malihou@ubuntu: ~$ cp ~/Desktop/1.txt ~/1.txt amp; rm ~/Desktop/1.txt amp; "éxito"
El comando del Ejemplo 1 primero copia el archivo 1.txt del directorio ~/Desktop al directorio ~; después de una ejecución exitosa, use rm para eliminar el archivo fuente; , se generará un mensaje rápido.
|| operador:
comando1 || comando2
|| es lo opuesto a amp;. Si el comando a la izquierda de || (comando 1) no se ejecuta correctamente, ejecute el comando a la derecha de || (comando 2 o, en otras palabras, "Si la ejecución de este comando falla || entonces ejecute); este comando.
1 Utilice || para conectar comandos para implementar la función OR lógica
2 Solo el comando en el lado izquierdo de || devuelve falso (valor de retorno del comando $? == 1), y el lado derecho de || Se ejecutará el comando. Esto es lo mismo que la función lógica o de sintaxis en el lenguaje C, es decir, se implementa la operación lógica de cortocircuito
Ejemplo 2
malihou@ubuntu: ~$ rm ~/Desktop/1.txt || echo "fail"
En el ejemplo 2, si el archivo 1.txt no existe en el directorio ~/Desktop, se generará un mensaje <. /p>
Ejemplo 3
malihou@ubuntu: ~$ rm ~. /Desktop/1.txt amp; echo "éxito" || echo "fail"
En el ejemplo 3, si el archivo 1.txt existe en el directorio ~/Desktop, aparecerá el mensaje de éxito. De lo contrario, aparecerá un mensaje de error
Si desea ejecutar varios comandos juntos; , s h e l l proporciona dos métodos para ejecutar un grupo de comandos en el s h e l l actual o en el operador sub s h e l l >
():
Para ejecutar un conjunto de comandos en el shell actual, puede separar cada comando con un separador de comandos (es decir, ","") y encerrar todos los comandos entre corchetes ().
Su forma general es:
(comando; comando; comando...)
1 Un comando necesita ocupar una línea física si se necesitan varios comandos. Póngalos en la misma línea y use el separador de comandos (;) para separar los comandos. El efecto de ejecución es equivalente al efecto de ejecutar múltiples comandos independientes individualmente.
2 () significa ejecutar múltiples comandos en su conjunto en el shell actual. Cabe señalar que los comandos encerrados en () no cambiarán el directorio de trabajo actual antes de la ejecución, lo que significa que la combinación de comandos se ejecuta en el directorio de trabajo actual, aunque hay un comando para cambiar de directorio en el comando.
3 Las combinaciones de comandos se utilizan a menudo junto con el control de ejecución de comandos.
Ejemplo 4
malihou@ubuntu: ~$ rm ~/Desktop/1.txt || (cd ~/Desktop/; ls -a; echo "fail") p>
En el ejemplo 4, si el archivo 1.txt no existe en el directorio ~/Desktop, ejecute la combinación de comandos.
operador {}:
Si se usa {} en lugar de (), entonces el comando correspondiente se ejecutará en el subshell en lugar del shell actual en su conjunto, solo si { } Cuando la salida de todos los comandos en } se redirige en su conjunto, los comandos se ejecutan en el subshell; de lo contrario, se ejecutan en el shell actual.
Su forma general es:
{ comando; comando... }
(Nota: Cuando se usa {}, el espacio entre {} y el comando debe usarse un espacio)
Prueba:
~$ A=1; echo $A = 2; > 1
2
~$ A=1; eco $A; ( A=2; ); eco $A
1