代码如下所示:
#!/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"
最后一个“echo”需要写入“/ connect secure”并点击进入weechat程序内部
你怎么建议我这样做?
答案 0 :(得分: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
命令;这样做:
`kill -9 $ X`
尝试执行一个命令,该命令是kill命令产生的标准输出。你只是试图杀死进程,所以只需运行kill命令:
kill -9 "$X"
或者因为你已经依赖于pgrep,所以只需使用pkill:
pkill -9 "$X"
因为您似乎正在检查pgrep是否发现了PID,只需检查它的返回码:
pgrep weechat >/dev/null && pkill weechat