en el shell de LINUX? A menudo es posible encontrar una llamada de comando del siguiente formulario en algunos scripts, especialmente al llamar a crontab
./t.sh > /dev /null 2 > &1 La primera mitad de ./t.sh > /dev /null es fácil de entender, así que, ¿qué está pasando detrás de los 2 > &1?
Para explicar este problema, aún debe mencionar la redirección de archivos. Sabemos que > y < es una redirección de archivos. Entonces, ¿qué son 1 y 2? En el shell, cada proceso está asociado con tres archivos del sistema: entrada estándar de entrada, salida estándar y salida estándar de error. Los descriptores de archivo para los tres archivos de sistema son 0, 1 y 2, respectivamente. Así que aquí 2 > &1 significa que el error estándar también se envía a la salida estándar.
El siguiente es un ejemplo para mostrar qué efecto tiene 2 > &1:
1234 $ cat ./t.sh#!/usr/bin/zshttttttecho " prueba "
t.sh contiene dos comandos, donde tttttt es un comando que no existe y la ejecución informará un error. De forma predeterminada, el error se enviará a stderr. El eco puede ejecutarse correctamente y enviar la información de la cadena a la salida estándar. La salida estándar aquí se ha redirigido a /dev /null. Entonces, el error estándar también se enviará a /dev /null
¿Por qué 2 > &1 se debe escribir más adelante?
Primero, ./t.sh > /dev /null 2 > &1 redirige la salida estándar a /dev /null, 2 > &1 es el error estándar que copia el comportamiento de salida estándar Es decir, también se redirige al archivo, el resultado final es que la salida estándar y los errores se redirigen al archivo. ./t.sh 2 > &1 > /dev /null El error estándar 2 > &1 copia el comportamiento de la salida estándar, pero la salida estándar aún se encuentra en el terminal. > /dev /null La salida se redirige a /dev /null, pero el error estándar aún no se cambiará a /dev /null
Los resultados de la prueba son los siguientes:
1234567891011121314 ➜ espacio de trabajo ./t.sh ./t.sh:2: comando no encontrado: ttttttest➜ espacio de trabajo ./t.sh > /dev/null./t.sh: 2: comando no encontrado: ttttt ➜ espacio de trabajo ./t.sh ./t.sh:2: comando no encontrado: espacio de trabajo ttttttest➜ ./t.sh > /dev/null./t.sh: 2: comando no encontrado: espacio de trabajo ttttt➜ ./T.sh > /dev /null 2 > &1➜ espacio de trabajo ./t.sh 2 > &1 /dev/null./t.sh:2: comando no encontrado: ttttttest
Para los sistemas en Internet, es importante tener claro la situación: la red no es segura. Por lo
Windows CE es un sistema operativo integrado desarrollado por Microsoft que se puede utilizar en una
Resumen del directorio: /: El directorio raíz, generalmente solo el directorio debajo del direct
La función de un controlador de dispositivo .linux Kernel: se utiliza para administrar los recur
Centos6.2 instala IOU-web-interface Nota
La función CTRL + Z cuando se ejecutan comandos en el sistema operativo Linux
Shell script para ver el uso de memoria de Linux
La batalla entre las características de Linux y Windows sistema de código abierto
En el futuro Linux quiere poner Flash debe usar Chrome
Centos6.5 instalar jdk1.7 pasos detallados
La computadora del sistema Linux bloquea la causa del fallo
La diferencia entre cable y registro en verilog HDL
En la variable de entorno JAVA de configuración BASH del sistema SUSE Linux
Enseñarle a verificar el tiempo al instalar el sistema Win7
Linux.tar .gz .tgz .bz2 .bz y otras soluciones, comando detallado del paquete de presión
Sistema operativo Linux detallado usando la partición de Windows
Función de encriptación de Win7 Proteja la información con un candado
LOL nueva versión de Sword Ji redo después de la carrera de talentos Raiders
Cómo crear una imagen del sistema en el sistema de Windows 7
Win7 sistema IE abierto no es cómo resolver la página de inicio?
VMware solicita la solución "Sin categoría de registro"
Cómo configurar el efecto visual del sistema Win10
Win7 /Win8.1 actualización Win10 error de instalación código de error 0xC1900101-0x30018 solución
¿Qué debo hacer si la fuente de texto del icono del escritorio de Win10 es demasiado grande?