O comando “cp p2 & 2 &” faz com que o Konsole desapareça, é um erro?

0

O objetivo é iniciar um processo em segundo plano que copie os dados do canal p2 para o STDOUT, já que p2 é alimentado com dados por algum outro processo.

Eu acho que o comando está incorreto. No entanto, a janela do aplicativo Konsole não deve simplesmente desaparecer imediatamente após pressionar a entrada. Eu deveria receber uma mensagem de erro ou uma janela de relatório de falha ou o que quer que seja.

Por que isso está acontecendo, é um erro?

Como posso consertar o comando para conseguir o que quero? (Mais tarde eu posso querer copiar os dados para algum outro lugar além do STDOUT.)

    
por Ali 26.08.2012 / 12:40

1 resposta

5

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
  1. '& 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.

  2. 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 &

por 26.08.2012 / 12:54