Il me semble que j'etais tombé sur le meme os en voulant aidé un ami egaré sous tcsh :)
En regardant de plus pres, j'ai l'impression que le probleme vient en effet de csh :
la commande jobs n'ecrit pas sur les descripteurs standards stdout et stderr, mais semble etre affiché "directement" sur le tty. Et donc n'est pas recuperable dans un pipe.
exemple : (tcsh)
[user@host ~]$ jobs
[1] + Running xclock
[user@host ~]$ jobs | grep xclock
[user@host ~]$ jobs |& grep xclock
Les deux commandes renvoient ... rien !
Solutions :
1) UTILISER UN SHELL TYPE SH !!!!
2) tricher en recuperant la liste des jobs sans la commande jobs : pgrep -P $$
soit : recuperer la liste des processus dont le parent a le PID du shell.
PS : pour info, la commande jobs de bash affiche sur stdout
# csh considered harmful
Posté par castorpilot . En réponse au message CSH : nombre de jobs. Évalué à 4.
En regardant de plus pres, j'ai l'impression que le probleme vient en effet de csh :
la commande jobs n'ecrit pas sur les descripteurs standards stdout et stderr, mais semble etre affiché "directement" sur le tty. Et donc n'est pas recuperable dans un pipe.
exemple : (tcsh)
[user@host ~]$ jobs
[1] + Running xclock
[user@host ~]$ jobs | grep xclock
[user@host ~]$ jobs |& grep xclock
Les deux commandes renvoient ... rien !
Solutions :
1) UTILISER UN SHELL TYPE SH !!!!
2) tricher en recuperant la liste des jobs sans la commande jobs : pgrep -P $$
soit : recuperer la liste des processus dont le parent a le PID du shell.
PS : pour info, la commande jobs de bash affiche sur stdout