我正在尝试为一个名为showbf的程序做一个小监视器,它每隔一段时间打印一次自我更新。
下面是我最好的尝试
ssh user@server.foo "exit"
if [ $? -ne 0 ]
then
ssh-add < /dev/null
fi
while true
do
resources=$(ssh user@server.foo "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循环重新创建窗口不是我想要的,因为新窗口被替换在屏幕的中心。
非常感谢塞尔瓦托
发布于 2011-12-02 05:23:41
如果你还没有解决这个问题,你真的应该看看yad,它是zenity的一个分支,正在积极改进。我今晚才安装了它(在尝试解决zenity中的一个bug时撞到了我的头),但如果它能做你想要的事情,我不会感到惊讶。例如,我注意到它有一个--tail选项。它在fedora的repos中,该页面有到deb包的链接。
发布于 2018-08-17 09:01:00
晚了七年,但总比没有强。这个yad support forum为某些人解决了这个问题:
Re: yad Re: yad窗口可以自我更新吗?正如Joe所说的,但是,你必须使用:
Child(yad -tail --> *.log --> Yad Parent(yad --text-info )显示
并自动滚动。对于
zenity,这是不可能的。请看我下面的视频:
发布于 2011-05-21 02:56:23
与其使用zenity,不如使用一个带有"watch“命令的xterm来获取必要的信息。类似于:
xterm -g 80x40+100+100 -e "watch ssh user@server.foo showbf"https://stackoverflow.com/questions/5939200
复制相似问题