Qual é o uso de “&” no bash?

2

Eu estava estudando um código de script bash onde encontrei o operador "& > >".  Eu não entendi o seu uso. Então, eu me referi ao link .

É semanticamente equivalente a >> file 2>&1 .

A seguir está a saída do meu shell: -

# echo $SHELL
/bin/bash
# echo "hello" &>> file1
bash: syntax error near unexpected token '>'

e

# echo "hello" >> file1 2>&1

# cat file1 

hello

Pergunta: - Por que estou recebendo o erro bash: syntax error near unexpected token '>' ?

[EDITAR] : - Versão do Bash 3.2.25 (1) -release (x86_64-redhat-linux-gnu)

    
por Akshay Patil 29.10.2013 / 15:54

2 respostas

3

Você está recebendo esse erro porque está usando uma versão mais antiga do bash (3.2.25).

Since Bash4, there's &>>TARGET, which is equivalent to >> TARGET 2>&1.

Fonte: Anexando saída redirecionada

Então, você deve levar em consideração uma atualização. Eu uso bash versão 4.2.45 e echo "hello" &>> file1 funciona como um encanto para mim.

    
por 29.10.2013 / 16:10
1

Este recurso foi introduzido no bash 4.0 alpha, por isso deve estar disponível em qualquer bash > = 4.0.

link - linha 976.

(O changelog 4.0-alpha original reportou incorretamente o operador como >>& . A página man mostra o &>> correto e o erro de digitação foi corrigido em 4.1.)

    
por 29.10.2013 / 16:55