2011-05-09 115 views
1

我正在试图制作一个名为showbf的程序的小型监视器,该程序每过一定时间就会自行更新一次。更新zenity窗口的内容

我最好的尝试是以下

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 colums,可用的proc数量和walltime)。但一旦zenity读取数据,它不会更新其内容。有任何想法吗??

使用while循环重新创建窗口并不是我想要的,因为新窗口被替换在屏幕中央。

非常感谢 萨尔瓦托雷

回答

0

而不是使用zenity的,为什么不把一个xterm一个“看”指挥它在获取必要的信息。喜欢的东西:

xterm -g 80x40+100+100 -e "watch ssh [email protected] showbf" 
+0

这是我使用的解决方案,但使用gnome终端和屏幕。 – Salvatore 2011-06-02 23:46:49

+0

这是我现在使用的解决方案,但使用gnome终端和屏幕。我想使用zenity的原因是要构建一些更复杂的脚本。非常感谢! – Salvatore 2011-06-02 23:52:45

1

如果您还没有制定这一点,你真的应该看看yad,zenity的一个分支,它正在积极改善。我今晚才安装它(在试图解决一个错综复杂的问题时抨击我的头脑),但如果它能够做到你想要的,我不会感到惊讶。例如,我注意到它有一个 - tail选项。它在Fedora的回购站中,并且该页面链接到deb包。

+0

我试着用'--text-info'和'--listen'来使用'yad',但它只听stdin附加文本,我希望它检查一个完整的文件更改并更新文本对话框 – 2014-05-21 01:39:42

+0

yad已移动到https://sourceforge.net/projects/yad-dialog/ – Alex 2018-01-09 11:20:47