代码如下所示:
#!/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程序内部按enter键
你建议我怎么做?
发布于 2017-08-17 09:34:11
根据WeeChat user’s guide的说法,创建了一个接受命令的先进先出,“如果选项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命令产生的stdout的命令。您只是想杀死进程,所以只需运行kill命令:
kill -9 "$X"或者,因为您已经依赖于pgrep,所以只需使用pkill:
pkill -9 "$X"由于您似乎只是在检查pgrep是否找到了PID,所以只需检查它的返回代码:
pgrep weechat >/dev/null && pkill weechathttps://stackoverflow.com/questions/45720699
复制相似问题