2017-05-29 4 views
0

j'ai essayer d'obtenir pid d'un processus en utilisant « set - » comme suit: dire un processus est démarré avec la commande suivante: java -jar someProg.jar« set - » commande pour analyser la sortie de commande « ps » sur la borne

Dans un script shell, je peux obtenir le processId en utilisant cette façon:

#  
pid_=$(ps -axf | grep someProg | grep -v grep) 

set -- $pid_ 

echo $1 
# 

maintenant, j'ai essayé de pid sur le terminal par la commande d'écriture comme:

ps -axf | grep someProg | grep -v grep | set -- | echo $1 

Mais je ne l'ai pas ge rien.

Comment puis-je obtenir le pid de sortie en utilisant set-command sur le terminal.

Merci

+0

pas besoin de "définir". http://xyproblem.info/ –

+0

'ps' +' grep' = 'pgrep' – ceving

Répondre

0

Qu'en est-

ps -axf | grep someProg | grep -v grep | awk '{print $1}' 

Il montre PID du processus someProg ...

1

Vous ne pouvez ni tuyau dans set, car il ne supporte pas, ni d'utiliser des outils comme xargs , parce que set est un built-in.

C'est tout ce que vous pouvez faire:

set -- $(ps -axf | grep someProg | grep -v grep) ; echo $1 

BTW: vous ne pouvez pas tuyau dans echo soit.

+0

Re" * ni utiliser d'outils comme 'xargs' *": il y a des moyens. Par exemple, 'echo foo bar | xargs bash -c 'set - "$ @"; echo $ 2 'baz'. – agc