ps 출력에서 ​​명령을 구성할 수 없습니다.

ps 출력에서 ​​명령을 구성할 수 없습니다.

bin\apachectlhttpd 프로세스를 얻은 다음 명령/파일 -v 출력을 얻고 싶습니다.

산출:

ps -eo cmd | grep httpd | grep -v grep
/home/myapache/app/httpd/bin/httpd -k start
/home/myapache/app/httpd/bin/httpd -k start
/home/myapache/app/httpd/bin/httpd -k start

의 출력은 ps -eo cmd | grep httpd | grep -v grep | head -1 | awk '{print $1}'다음과 같습니다

/home/myapache/app/httpd/bin/httpd

내 요구 사항은 위 명령을 사용하여 아래 명령을 실행하는 것입니다 ps.

/home/myapache/app/httpd/bin/apachectl -v

지금까지 내가 얻을 수 있었던 것은 다음과 같습니다.

dirname `ps -eo cmd | grep httpd | grep -v grep | head -1 | awk '{print $1}'` && echo -n "/apachectl -v

산출:

/home/myapache/app/httpd/bin
/apachectl -v

불행히도 /apachectl -v다음과 같이 같은 줄에 있기를 원할 때 다음 줄에 나타납니다.

ps 가급적이면 posix 빌드를 사용하여 다음 명령을 실행하여 실행하도록 요청하세요.

/home/myapache/app/httpd/bin/apachectl -v

답변1

원하는 것을 수행한다고 가정하면 ps -eo cmd필요한 것은 다음과 같습니다.

"$(ps -eo cmd | awk 'sub("/[h]ttpd[^/]*$",""){print; exit}')"/apachectl -v

답변2

이렇게 한 줄로 실행할 수 있습니다

PS_OUTPUT=`dirname $(ps -eo cmd | grep [h]ttpd | head -1|awk '{print $1}')`; APACHE='apachectl -v'; myCMD='$OUTPUT/$APACHE'; eval $myCMD

eval: 쉘 명령과 같은 매개변수를 실행합니다.

관련 정보