qual é o uso de '' redirecionamento? [duplicado]

0

Estou procurando um exemplo de redirecionamento << porque não entendi bem. Eu sei < é para enviar o conteúdo do arquivo especificado para ser usado como entrada padrão como:

cat < file.txt

mas não entendo o que << faz. Eu vi uma descrição sobre isso que diz "aceitar o texto da linha seguinte como entrada padrão", mas ainda confuso.

    
por amir jj 04.11.2014 / 11:52

3 respostas

0

Esse operador implementa um documento aqui, que usa o texto das linhas a seguir como entrada padrão. No entanto, você não usará esse redirecionador na linha de comando, porque as linhas a seguir são entradas padrão, portanto, não é necessário redirecioná-los. Em vez disso, você pode usar esse comando como parte de um script para transmitir dados a um comando. Ao contrário da maioria dos operadores de redirecionamento, o texto que segue imediatamente o código << não é um nome de arquivo; usado para marcar o final da entrada. Por exemplo, digitar someprog << EOF faz com que someprog aceite entrada até ver uma linha que contenha apenas a string EOF (mesmo sem espaço após ela).

Nota: Alguns programas que recebem entrada da linha de comando esperam que você termine entrada pressionando Ctrl+D . Esse pressionamento de tecla corresponde a um marcador de fim de arquivo usando o Código Padrão Americano para Intercâmbio de Informações (ASCII).

    
por 04.11.2014 / 12:15
1

Isso permite incorporar o texto que será alimentado a um comando em um script no próprio script em vez de em um arquivo externo. Assim, em vez de redirecionar de outro arquivo, você poderia ter o conteúdo de entrada em um único arquivo contendo o script e os dados de entrada.

Isso é especialmente útil ao misturar scripts shell e awk, perl ou outras linguagens de script.

Isso é importante para observar que a palavra após o redirecionamento << é considerada o fim do redirecionamento.

Um exemplo simples:

#!/bin/sh
cat << EOF > output.txt
line 1
line 2
line 3
EOF
echo done

Isso produzirá um arquivo output.txt contendo:

line 1
line 2
line 3

e o script apenas imprimirá done no terminal

    
por 04.11.2014 / 12:15
0

isso é chamar um documento aqui.

Isso é principalmente usado se você quiser definir uma parte de um arquivo em um shell de comando. Ou seja,

cat <<foobarbaz > /tmp/file.txt
hello 
world
$$
foobarbaz

preencherá o arquivo /tmp/file.txt com

hello
world
1234

assumindo 1234 é o ID do processo.

    
por 04.11.2014 / 11:59