csh: Livre-se do job + PID ao bifurcar

csh: Livre-se do job + PID ao bifurcar

Com o bash eu posso executar:

$ ssh bashuser@localhost '( ls -d / nosuchfile ) & echo foo; wait'
foo
ls: cannot access nosuchfile: No such file or directory
/

Se eu tentar o mesmo com csh, recebo:

$ ssh cshuser@localhost '( ls -d / nosuchfile ) & echo foo; wait'
[1] 187253
foo
ls: cannot access nosuchfile: No such file or directory
/
[1]    Exit 2                 ( ls -d / nosuchfile )

Eu gostaria de obter a mesma saída do bash. Como evito o [1] PIDe [1] Exit ...? Posso de alguma forma colocar cshno modo silencioso?

Os lse echo foosão, obviamente, apenas exemplos. Na realidade, eles serão muito mais complexos e dependerão de serem executados no shell de login e precisarei de stdout e stderr, portanto, uma grep -vsaída simples não funcionará.

Responder1

Não parece que você pode fazer isso sem alguns truques de mágica (ou seja, não há opção). Você pode usar sh -c, no entanto:

$ ssh cshuser@localhost 'sh -c "( ls -d / nosuchfile ) & echo foo; wait"'   
foo
ls: nosuchfile: No such file or directory
/

IMHO, esta é a melhor opção de qualquer maneira, já que existem mais shells que bash& csh(como fish), e você não tem garantia de como qualquer um deles se comportará ...

informação relacionada