Latest web development tutorials

input Shell redirecionamento / saída

A maioria dos sistemas UNIX para aceitar comandos a partir do seu terminal de entrada e saída gerada é enviada de volta para o seu terminal. Um comando normalmente ler de uma entrada local chamado de entrada padrão, por padrão, este passa a ser o seu terminal. Da mesma forma, um comando normalmente grava sua saída para a saída padrão, por padrão, este é o seu terminal.

Redirecionar lista de comandos é a seguinte:

comando explicação
command> arquivo Redirecionar a saída para um arquivo.
comando <file Redirecionar a entrada para o arquivo.
arquivo de comando >> A saída para ser redirecionado para o arquivo acrescentando.
n> arquivo O descritor de arquivo para os arquivos n redirecionados para o arquivo.
n Arquivo >> O descritor n arquivo para arquivo formas adicionais para redirecionar o arquivo.
n> & m O arquivo de saída m e n são mesclados.
N <& m O arquivo de entrada m e n são mesclados.
<< Tag O conteúdo tag tag tag de início e marca final entre como entrada.

Note-se que o descritor de arquivo 0 é geralmente entrada padrão (STDIN), 1 é a saída padrão (STDOUT), 2 é a saída de erro padrão (STDERR).


redirecionamento de saída

Redirecionar tipicamente por entre comando para inserir símbolos específicos para alcançar. Em particular, esses símbolos mostrado na seguinte sintaxe:

command1 > file1

O comando acima irá executar command1 e depois a saída do conteúdo armazenado no file1.

File1 Note que qualquer conteúdo que já existe será substituído pelo novo conteúdo. Se você quiser adicionar novos conteúdos no final do arquivo, use o operador >>.

Exemplos

Execute o seguinte comando que completam ele irá redirecionar a saída de um comando nos arquivos do usuário (usuários):

$ who > users

Após a execução, não há saída no terminal, é porque a saída foi redirecionado a partir do dispositivo padrão padrão de saída (terminal) para o arquivo especificado.

Você pode usar o comando cat para visualizar o conteúdo do arquivo:

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

redirecionamento de saída substitui o conteúdo do arquivo, consulte o seguinte exemplo:

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

Se você não quer que o conteúdo do arquivo é substituído, você pode usar o >> anexar um arquivo, por exemplo:

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

redirecionamento de entrada

E, como redirecionamento de saída, comando Unix pode tirar a entrada de um arquivo, a sintaxe é:

command1 < file1

Assim, a necessidade original para obter a entrada do teclado será transferido para o arquivo de comando para ler o conteúdo.

Nota: O redirecionamento de saída símbolo maior que (>), redirecionamento de entrada é menor que (<).

Exemplos

Em seguida, o exemplo acima, temos de contar o número de arquivo de usuários de linhas, execute o seguinte comando:

$ wc -l users
       2 users

Você também pode redirecionar arquivos de entrada para os usuários:

$  wc -l < users
       2 

Nota: Os resultados dos dois exemplos acima são diferentes: o primeiro exemplo, o nome do arquivo de saída, o segundo não vai, porque ele conhece apenas ler da entrada padrão.

command1 < infile > outfile

Substitua entrada e saída, execute command1, infile ler o arquivo, e em seguida, escrever a saída para o arquivo de saída.

Redirecionar explicação profundidade

Em circunstâncias normais, cada comando Unix / Linux roda vai abrir três arquivos:

  • de arquivo padrão de entrada (stdin): descritor de arquivo stdin a 0, programa padrão Unix lê dados de stdin.
  • ficheiro padrão de saída (stdout): saída padrão de descritor de arquivo 1, programas Unix padrão para dados de saída stdout.
  • erro padrão (stderr): descritor de arquivo stderr a 2, programa Unix escreve mensagens de erro para fluxo de stderr.

Por padrão, command> redirecionamento stdout arquivo para um arquivo, o comando <arquivo será STDIN redirecionado para o arquivo.

Se você deseja redirecionar stderr para o arquivo, você pode escrever:

$ command 2 > file

Se você quiser adicionar ao final de arquivo do arquivo stderr, você pode escrever:

$ command 2 >> file

2 representa o arquivo de erro padrão (stderr).

Se você deseja mesclar após a stdout e stderr redirecionado para o arquivo, você pode escrever:

$ command > file 2>&1

或者

$ command >> file 2>&1

Se você deseja redirecionar stdin e stdout, você pode escrever:

$ command < file1 >file2

comando comando stdin redirecionado para file1, redirecionar stdout para file2.


aqui Documento

Aqui Documento Shell está em um métodos de redirecionamento especiais usadas para redirecionar a entrada de um script shell interativo ou programa.

A sua forma básica é a seguinte:

command << delimiter
    document
delimiter

É a função do teor (documento) é transmitida para os dois delimitador entre comando como entrada.

Nota:

  • Terminando delimitador deve ser a gravação grade superior, não pode ter qualquer um dos personagens na frente da parte de trás não pode ter quaisquer caracteres, incluindo espaços e recuo guia.
  • Espaços antes e após o início delimitador é ignorado.

Exemplos

O número de linhas na linha de comando computação Aqui documento pelo comando wc -l:

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

Podemos também Aqui documento utilizado em um script, por exemplo:

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

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

Implementação do script acima, a saída:

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

/ Arquivo Dev / null

Se você quiser executar um comando, mas não deseja exibir a saída na tela, você pode redirecionar a saída para / dev / null:

$ command > /dev/null

/ Dev / null é um arquivo especial, seu conteúdo é escrito para ser descartado, se você tentar ler a partir do arquivo, em seguida, o que não pode ler. No entanto, / dev arquivo / null é muito útil para redirecionar a saída do comando a ele, ele vai agir como um efeito de "proibir a saída".

Se você quiser proteger stdout e stderr, você pode escrever:

$ command > /dev/null 2>&1

Nota: 0 é a entrada padrão (STDIN), 1 é a saída padrão (STDOUT), 2 é a saída de erro padrão (STDERR).