如果程式正在執行則執行某些操作

如果程式正在執行則執行某些操作

是否可以在終端機中輸入某些內容,以便在某個程式正在執行時它會執行命令?例如,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,設定了一個有用的退出代碼。如果找到進程,它將返回退出代碼為零(shell 將其解釋為邏輯真)。如果不是,則傳回 1(shell 將任何非零退出代碼解釋為 false)。

若要找出目前正在執行的所有程式(以及使用什麼名稱作為 的參數pgrep),請執行ps ax

相關內容