Latest web development tutorials

entrada Shell redirección / salida

La mayoría de los sistemas UNIX para aceptar comandos de su terminal de entrada y de salida generado es enviado de vuelta a su terminal. Un comando normalmente leer desde una entrada local llama la entrada estándar, por defecto, esto pasa a ser su terminal. Del mismo modo, un comando normalmente escribe su salida a la salida estándar, por defecto, esto es su terminal.

Redirigir lista de comandos es la siguiente:

comando explicación
comando> archivo Redirigir la salida a un archivo.
<Archivo de comandos Redirigir la entrada en el archivo.
>> Archivo de comandos La salida se redirige al archivo adjuntas.
n> archivo El descriptor de archivo para los archivos n redirigido a presentar.
n >> Archivo El archivo descriptor de archivo n de formas adicionales para redirigir el archivo.
n> & m El archivo de salida m y n se combinan.
n <& m El archivo de entrada m y n se combinan.
<< Tag El contenido de la etiqueta etiqueta etiqueta inicial y la etiqueta final entre como entrada.

Tenga en cuenta que el descriptor de archivo 0 suele ser la entrada estándar (stdin), 1 es la salida estándar (stdout), 2 es la salida de error estándar (STDERR).


redirección de la salida

Redirigir normalmente entre un comando para insertar símbolos específicos para alcanzar. En particular, estos símbolos muestran en la siguiente sintaxis:

command1 > file1

El comando anterior se ejecutará comando1 y luego la salida del contenido almacenado en archivo1.

Archivo1 Tenga en cuenta que cualquier contenido que ya existe será sustituido por el nuevo contenido. Si desea añadir nuevos contenidos al final del archivo, utilice el operador >>.

Ejemplos

Ejecute el siguiente comando que completan volverá a dirigir la salida de un comando en los archivos de usuario (usuarios):

$ who > users

Después de la ejecución, no hay salida en el terminal, es porque la salida se ha redirigido desde el dispositivo de salida estándar por defecto (terminal) en el archivo especificado.

Puede utilizar el comando cat para ver el contenido del archivo:

$ cat users
_mbsetupuser console  Oct 31 17:35 
tianqixin    console  Oct 31 17:35 
tianqixin    ttys000  Dec  1 11:33 

redirección de la salida sobrescribe el contenido del archivo, consulte el siguiente ejemplo:

$ echo "本教程:www.w3big.com" > users
$ cat users
本教程:www.w3big.com
$

Si no desea que el contenido del archivo se sobrescribe, se puede utilizar el >> anexar a un archivo, por ejemplo:

$ echo "本教程:www.w3big.com" >> users
$ cat users
本教程:www.w3big.com
本教程:www.w3big.com
$

redirección de entrada

Y como redirección de la salida, comando de Unix puede obtener información de un archivo, la sintaxis es:

command1 < file1

Por lo tanto, la necesidad original para obtener la entrada del teclado será transferido al archivo de comando para leer el contenido.

Nota: La redirección de la salida símbolo mayor que (>), redirección de entrada es menor que (<).

Ejemplos

A continuación, el ejemplo anterior, tenemos que contar el número de usuarios de archivos filas, ejecute el siguiente comando:

$ wc -l users
       2 users

También puede redirigir a los usuarios archivos de entrada:

$  wc -l < users
       2 

Nota: Los resultados de los dos ejemplos anteriores son diferentes: el primer ejemplo, el nombre de archivo de salida, y el segundo no, ya que no conoce más que leer de la entrada estándar.

command1 < infile > outfile

Reemplazar tanto de entrada como de salida, ejecutar comando1, archivoentrada leer el archivo, y luego escribir el resultado en el archivo de salida.

Redirigir explicar la profundidad

En circunstancias normales, cada uno ejecuta el comando Unix / Linux se abrirán tres archivos:

  • de archivo estándar de entrada (entrada estándar): descriptor de archivo de la entrada estándar a 0, el programa predeterminado Unix lee los datos de la entrada estándar.
  • de archivo estándar de salida (salida estándar): la salida estándar al descriptor de archivo 1, programa Unix por defecto a los datos de salida stdout.
  • error estándar (stderr): stderr descriptor de archivo a 2, el programa Unix escribe mensajes de error al flujo stderr.

Por defecto, el comando> salida estándar de redirección de archivos en un archivo, el comando <archivo será redireccionada la entrada estándar a un archivo.

Si desea redirigir stderr al archivo, se puede escribir:

$ command 2 > file

Si desea anexar al final del archivo archivo stderr, se puede escribir:

$ command 2 >> file

2 representa el archivo de error estándar (stderr).

Si desea combinar después de la stdout y stderr redirigida al archivo, se puede escribir:

$ command > file 2>&1

或者

$ command >> file 2>&1

Si desea redirigir entrada y salida estándar, se puede escribir:

$ command < file1 >file2

la entrada estándar de comandos de comandos redirigido a archivo1, archivo2 redirigir stdout a.


aquí Documento

Aquí Documento Shell está en una redirección de métodos especiales utilizados para redirigir la entrada a una secuencia de comandos shell interactivo o programa.

Su forma básica es la siguiente:

command << delimiter
    document
delimiter

Es el papel de los contenidos (documento) se transmite a los dos delimitador entre comando como entrada.

Nota:

  • Terminando delimitador debe ser la escritura rejilla superior, no puede tener cualquiera de los personajes frente a la parte posterior no puede tener caracteres, incluyendo espacios y ficha sangría.
  • Espacios antes y después del delimitador de inicio se ignora.

Ejemplos

El número de filas de la línea de comandos de computación Aquí documento mediante el comando wc -l:

$ wc -l << EOF
    欢迎来到
    本教程
    www.w3big.com
EOF
3          # 输出结果为 3 行
$

Podemos también Aquí documento que se utiliza en una secuencia de comandos, por ejemplo:

#!/bin/bash
# author:本教程
# url:www.w3big.com

cat << EOF
欢迎来到
本教程
www.w3big.com
EOF

Aplicación de la secuencia de comandos anterior, la producción:

欢迎来到
本教程
www.w3big.com

/ Archivo dev / null

Si desea ejecutar un comando, pero no quieren mostrar la salida en la pantalla, puede redirigir la salida a / dev / null:

$ command > /dev/null

/ Dev / null es un archivo especial, sus contenidos están escritos para ser desechados; si intenta leer el archivo, a continuación, lo que no puede leer. Sin embargo, / dev archivo / null es muy útil para redirigir la salida del comando a la misma, que actuará como un efecto de "prohibir la salida".

Si desea proteger a stdout y stderr, se puede escribir:

$ command > /dev/null 2>&1

Nota: 0 es la entrada estándar (stdin), 1 es la salida estándar (stdout), 2 es la salida de error estándar (STDERR).