我试着给一个叫做showbf的程序做一个小监视器,这个程序每隔一段时间就会打印一次更新。
我最好的办法是

ssh [email protected] "exit"
if [ $? -ne 0 ]
then
    ssh-add < /dev/null
fi

while true
do
resources=$(ssh [email protected] "showbf")
if (echo "$resources" | grep -q "[0-9] procs")
then
    echo $(echo "$resources" | awk '/[0-9] procs/ {print $1,"for",$5}')
else
    echo "No procs available."
fi

if [[ $? == 0 ]] || [[ $? == 1 ]]
then
    exit 0
fi
sleep 1
done | zenity --text-info --height=200 --width=300 \
    --title "Resources available for immediate use (showbf)"

我真的不喜欢它,因为它会将结果附加到预览中。它变得很乱。我想使用类似zenity--list的方法(结果是2个列、可用的proc数和walltime)。但一旦Zenity读取数据,它就不会更新其内容。有什么想法吗?是吗?
使用while循环来重新创建窗口不是我想要的,因为新窗口在屏幕中央被替换。
非常感谢
萨尔瓦多

最佳答案

如果你还没有解决这个问题,你真的应该去看看yad,这是一个正在积极改进的顶点。我只是今晚才安装它(在试图解决Zenity的一个bug时撞到了我的头),但如果它能做你想做的,我也不会感到惊讶。例如,我注意到它有一个--tail选项。它在Fedora的回购协议中,该页面有指向DEB包的链接。

10-04 13:47