首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在linux中显示来自bash脚本的GUI消息框?

如何在linux中显示来自bash脚本的GUI消息框?
EN

Stack Overflow用户
提问于 2008-08-10 12:07:55
回答 11查看 186.5K关注 0票数 169

我在Ubuntu linux下写了几个bash脚本。我希望能够从GUI运行它们,而不需要终端窗口来输入任何输入或查看任何输出。

到目前为止,唯一需要的输入是sudo的密码- gksudo可以很好地处理这一点。但是我还没有找到一种简单的方式来显示消息框。有没有可用的'gkmessage‘命令?我更喜欢默认的Ubuntu安装,但如果需要的话,我不介意安装一个新的包。

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2008-08-10 06:40:48

我相信Zenity会照你说的做。它是专门为从命令行显示GTK对话框而设计的,它以Ubuntu package.

票数 157
EN

Stack Overflow用户

发布于 2013-01-20 14:58:38

如果你使用 Ubuntu 很多发行版,notify-send 命令会在右上角抛出那些很好的通知之一。像这样:

notify-send "My name is bash and I rock da house"

代码语言:javascript
复制
DisplayValue = A + B * Math.Exp(C * SliderValue);

内部滑块值(例如,从0到1)是通过反转公式获得的:

代码语言:javascript
复制
SliderValue = Math.Log((DisplayValue - A) / B) / C;

现在如何获得A、B和C?通过使用您给出的三个约束:

代码语言:javascript
复制
f(0.0) = 0
f(0.5) = 100
f(1.0) = 500

三个方程,三个未知数,这是用基本数学解决的:

代码语言:javascript
复制
A + B = 0
A + B exp(C * 0.5) = 100
A + B exp(C) = 500

B (exp(C * 0.5) - 1) = 100
B (exp(C) - 1) = 500

exp(C) - 5 exp(C * 0.5) + 4 = 0  // this is a quadratic equation

exp(C * 0.5) = 4

C = log(16)
B = 100/3
A = -100/3

生成以下代码:

代码语言:javascript
复制
double B = 100.0 / 3;
double C = Math.Log(16.0);
DisplayValue = B * (Math.Exp(C * SliderValue) - 1.0);

您可以看到,当内部值位于中间时,显示值为100:

编辑

:由于请求了通用公式,因此它在这里。给定:

代码语言:javascript
复制
f(0.0) = x
f(0.5) = y
f(1.0) = z

A、B和C的值为:

代码语言:javascript
复制
A = (xz - y²) / (x - 2y + z)
B = (y - x)² / (x - 2y + z)
C = 2 * log((z-y) / (y-x))

请注意,如果

是零,就没有解,你会得到一个被零除的结果。这是因为在这种情况下,比例实际上是线性的。你得处理好那个特殊的病例。

票数 170
EN

Stack Overflow用户

发布于 2009-08-05 18:49:22

Thezenity应用程序似乎就是您要找的。从以下位置获取输入

zenity,您可以指定一个变量,并使输出zenity --entry保存到它。它看起来像这样:

代码语言:javascript
复制
my_variable=$(zenity --entry)

如果您查看下面的值我的_变量现在,它将是在zenity弹出输入对话框中输入的内容。

如果您想给出一些提示,告诉用户(或您)应该在对话框中输入什么,请在对话框中添加--文本

切换到所需的标签。它看起来像这样:

代码语言:javascript
复制
my_variable=$(zenity --entry --text="What's my variable:")

Zenity有许多用于特定任务的其他很好的选项,因此您可能也希望通过以下命令查看这些选项zenity --帮助。一个例子是--日历选项,让您从图形日历中选择日期。

代码语言:javascript
复制
my_date=$(zenity --calendar)

它根据用户点击的内容给出了一个格式良好的日期:

代码语言:javascript
复制
echo ${my_date}

提供:

08/05/2009

还有滑块选择器、错误、列表等选项。

希望这能有所帮助。

票数 51
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7035

复制
相关文章

相似问题

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