首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更新zenity窗口的内容

更新zenity窗口的内容
EN

Stack Overflow用户
提问于 2011-05-09 23:39:49
回答 3查看 4.1K关注 0票数 2

我正在尝试为一个名为showbf的程序做一个小监视器,它每隔一段时间打印一次自我更新。

下面是我最好的尝试

代码语言:javascript
复制
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循环重新创建窗口不是我想要的,因为新窗口被替换在屏幕的中心。

非常感谢塞尔瓦托

EN

回答 3

Stack Overflow用户

发布于 2011-12-02 05:23:41

如果你还没有解决这个问题,你真的应该看看yad,它是zenity的一个分支,正在积极改进。我今晚才安装了它(在尝试解决zenity中的一个bug时撞到了我的头),但如果它能做你想要的事情,我不会感到惊讶。例如,我注意到它有一个--tail选项。它在fedora的repos中,该页面有到deb包的链接。

票数 2
EN

Stack Overflow用户

发布于 2018-08-17 09:01:00

晚了七年,但总比没有强。这个yad support forum为某些人解决了这个问题:

Re: yad Re: yad窗口可以自我更新吗?正如Joe所说的,但是,你必须使用:

代码语言:javascript
复制
Child(yad -tail --> *.log --> Yad Parent(yad --text-info )

显示

并自动滚动。对于zenity,这是不可能的。请看我下面的视频:

https://www.youtube.com/watch?v=stPAWGXQyLY

票数 2
EN

Stack Overflow用户

发布于 2011-05-21 02:56:23

与其使用zenity,不如使用一个带有"watch“命令的xterm来获取必要的信息。类似于:

代码语言:javascript
复制
xterm -g 80x40+100+100 -e "watch ssh user@server.foo showbf"
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5939200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档