2017-08-16 31 views
1

代碼執行命令如下:巴什 - 在打開一個程序

#!/bin/bash 
X=$(pgrep weechat) 
re='^[0-9]+$' 

if [[ $X =~ $re ]] ; then 
    echo "process '$X' killed" 
    `kill -9 $X` 
else 
    echo "no running weechat sessions" 
fi 

weechat 
sleep .1 
echo "/connect secure" 

最後的「回聲」需要寫「/連接的安全」,並擊中了weechat程序

如何做入內你推薦我這樣做?

+0

好吧,這裏有一些示例https://weechat.org/scripts/ – FreshPow

回答

0

根據WeeChat user’s guide,創建了一個FIFO,它接受命令「如果選項plugins.var.fifo.fifo已啓用,則默認爲」。

只要抓住了weechat進程的PID(爲了找到FIFO文件):

weechat & 
weechat_pid=$! 
printf '%s\n' "/connect secure" >~/.weechat/weechat_fifo_${weechat_pid} 

我還建議改變你的kill命令列;這樣做:

`殺-9 $ X`

試圖執行一個命令是kill命令產生的標準輸出。你只是想殺死進程,所以只需運行kill命令:

kill -9 "$X" 

或者因爲你已經依靠p纖ep,只需使用pkill的:

pkill -9 "$X" 

因爲你似乎只是要檢查pgrep是否找到PID,只需檢查它的返回碼:

pgrep weechat >/dev/null && pkill weechat 
相關問題