csh: Deshazte del trabajo+PID al bifurcar

csh: Deshazte del trabajo+PID al bifurcar

Con bash puedo ejecutar:

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

Si intento lo mismo con csh obtengo:

$ 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 )

Me gustaría obtener el mismo resultado que bash. ¿Cómo evito el [1] PIDy [1] Exit ...? ¿Puedo ponerlo de alguna manera cshen modo silencioso?

Los lsy, echo foopor supuesto, son sólo ejemplos. En realidad, serán mucho más complejos y dependerán de que se ejecuten bajo el shell de inicio de sesión y necesitaré stdout y stderr, por lo que una simple grep -vsalida no funcionará.

Respuesta1

No parece que puedas hacerlo sin algún truco de magia (es decir, no hay opción). Puedes usar sh -c, sin embargo:

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

En mi humilde opinión, esta es la mejor opción de todos modos, ya que hay más shells que bash& csh(como fish), y no tienes garantía de cómo se comportan ninguno de ellos...

información relacionada