O e comercial também funciona como terminador de linha? [duplicado]

1

Eu sei que no bash, o símbolo & delega um comando para o segundo plano, mas ele também deve dobrar como um terminador de linha especial?

Para dar um exemplo do que estou a referir, encontrei esta linha no link

while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 & exec 7> /tmp/fifo1

é o equivalente acima para ..?

while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 &
exec 7> /tmp/fifo1

Ou existe um significado especial para essas duas partes estarem na mesma linha?

    
por joelliusp 23.06.2018 / 22:27

1 resposta

4
while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 & exec 7> /tmp/fifo1

é de fato equivalente a

while read a; do echo "FIFO1: $a"; done < /tmp/fifo1 &
exec 7> /tmp/fifo1

& age como um separador de comando, além de colocar o comando precedendo-o em segundo plano.

Estritamente falando, ele age como um separador para itens em uma lista de comandos :

A list is a sequence of one or more pipelines separated by one of the operators ‘;’, ‘&’, ‘&&’, or ‘||’, and optionally terminated by one of ‘;’, ‘&’, or a newline.

    
por 23.06.2018 / 22:28