Получение PID процесса в скрипте оболочки
Я пишу один сценарий оболочки, и я хочу получить PID одного процесса с именем как "ABCD". Я сделал следующее:--2-->
process_id=`/bin/ps -fu $USER|grep "ABCD"|awk '{print }'`
Это получает PID двух процессов, т. е. процесса ABCD и самой команды GREP, что делать, если я не хочу, чтобы PID GREP выполнялся, и я хочу PID только процесса ABCD?
пожалуйста, предложите.
5 ответов
просто grep прочь сам grep!
process_id=`/bin/ps -fu $USER| grep "ABCD" | grep -v "grep" | awk '{print }'`
его очень прямо вперед. ABCD должно быть заменено на имя процесса.
#!/bin/bash
processId=$(ps -ef | grep 'ABCD' | grep -v 'grep' | awk '{ printf }')
echo $processId
иногда вам нужно заменить ABCD по наименование программного обеспечения. Пример - если вы запускаете java-программу, такую как java -jar TestJar.jar &
тогда вам нужно заменить ABCD by TestJar.Джар
вы можете использовать эту команду для grep pid определенного процесса & echo $b для печати pid любого запущенного процесса
b=ps -ef | grep [f]irefox | awk '{ printf }'
echo $b