Eu diria que é um bug. Qual versão do bash você está executando? Sua linha de comando está incorreta, mas não deve travar o shell. Eu esperaria ver a saída assim:
$ cp p2 &2 & [1] 24800 [2] 24801 $ bash: 2: command not found cp: missing destination file operand after 'p2' Try 'cp --help' for more information. [1]- Exit 1 cp -i p2 [2]+ Exit 127 2
-
'& 2' não significa nada. bem, isso não significa o que você acha que isso significa. Ele executa o comando anterior (o 'cp') em segundo plano (que falha devido a argumentos insuficientes - nenhum destino) e, em seguida, tenta executar um comando chamado '2', também em segundo plano.
É o mesmo que executar:
cp p2 & 2 &
Você não tem um alias, script ou função shell chamada '2' que executa "exit"? se não, então o shell certamente não deve terminar.
-
o que você está tentando fazer? Eu acho que você está tentando exibir o conteúdo do pipe nomeado p2 e executá-lo em segundo plano? Nesse caso, tente isso:
cat p2 &