
특정 프로그램이 실행 중일 때 명령이 실행되도록 터미널에 입력할 수 있는 것이 있습니까? 예를 들어, if <Libre office is running> then sudo pkill <Libre ofice>
.
편집 1: 그래서 제가 하고 싶은 것은 터미널에서 프로그램이 실행 중이면 실행되고 그렇지 않으면 아무 것도 하지 않거나 다른 작업을 수행하는 if 문을 만드는 것입니다.
답변1
"내가 하고 싶은 것은 프로그램이 실행 중이면 실행되고 그렇지 않으면 아무것도 하지 않거나 다른 작업을 수행하는 if 문을 터미널에 만드는 것입니다."
프로그램이 해당 이름으로 실행 중인지 확인하려면 를 사용하십시오 pgrep
. LibreOffice의 워드 프로세서가 실행 중인 경우 작업을 수행하려면:
pgrep soffice.bin >/dev/null && do_something
마찬가지로 LibreOffice의 워드 프로세서가~ 아니다달리기:
pgrep soffice.bin >/dev/null || do_something
또한 다음 두 가지를 조합하여 사용할 수도 있습니다.
pgrep soffice.bin && do_one_thing || do_another
또는 상황이 더 복잡해지면 다음 if
명령문을 사용하세요.
if pgrep soffice.bin
then
# command is running
do_one_thing
do_one_thing2
else
# command is not running
do_another
do_another2
fi
위의 작업은 pgrep
과 마찬가지로 grep
유용한 종료 코드를 설정하기 때문입니다. 프로세스가 발견되면 종료 코드 0(셸이 논리적인 true로 해석함)과 함께 반환됩니다. 그렇지 않은 경우 1을 반환합니다(셸은 0이 아닌 종료 코드를 false로 해석함).
현재 실행 중인 모든 프로그램(및 에 대한 인수로 사용할 이름 pgrep
)을 찾으려면 다음을 실행하세요.ps ax