2017-08-16 4 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によれば、 "オプションplugins.var.fifo.fifoが有効の場合、デフォルトでは"というコマンドを受け付けるFIFOが作成されています。

は、単純に(FIFOファイルを見つけるために)WeeChatのプロセスのPIDをつかむ:

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

記載されているように私はまた、あなたのkillコマンドへの変更をお勧めしたいです。これを行う:

`殺す-9 $ X '

killコマンドの結果stdoutですコマンドを実行しようとする試みを。あなただけのように見えるので、

pkill -9 "$X" 

をして:

kill -9 "$X" 

か、すでにのpgrepに頼っていることから、単にpkillはを使用する:あなたは、単にこれだけkillコマンドを実行し、プロセスを強制終了しようとしていますpgrepがPIDを検出したかどうかを確認するには、戻りコードを確認してください:

pgrep weechat >/dev/null && pkill weechat