csh: Избавляемся от job+PID при разветвлении

csh: Избавляемся от job+PID при разветвлении

С помощью bash я могу запустить:

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

Если я попробую сделать то же самое с csh, то получу:

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

Я хотел бы получить тот же вывод, что и bash. Как мне избежать [1] PIDи [1] Exit ...? Можно ли как-то включить cshтихий режим?

Конечно , lsи echo fooэто только примеры. На самом деле они будут намного сложнее и будут зависеть от запуска под оболочкой входа, и мне понадобятся stdout и stderr, поэтому простой grep -vвывод не сработает.

решение1

Похоже, что без магических трюков тут не обойтись (т. е. нет выбора). sh -cХотя можно использовать:

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

ИМХО, это в любом случае лучший вариант, поскольку оболочек больше, чем bash& csh(например fish, ), и у вас нет никаких гарантий, как поведет себя каждая из них...

Связанный контент