bin\apachectl
httpd 프로세스를 얻은 다음 명령/파일 -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
: 쉘 명령과 같은 매개변수를 실행합니다.