我在Ubuntu linux下写了几个bash脚本。我希望能够从GUI运行它们,而不需要终端窗口来输入任何输入或查看任何输出。
到目前为止,唯一需要的输入是sudo的密码- gksudo可以很好地处理这一点。但是我还没有找到一种简单的方式来显示消息框。有没有可用的'gkmessage‘命令?我更喜欢默认的Ubuntu安装,但如果需要的话,我不介意安装一个新的包。
发布于 2008-08-10 06:40:48
我相信Zenity会照你说的做。它是专门为从命令行显示GTK对话框而设计的,它以Ubuntu package.
发布于 2013-01-20 14:58:38
如果你使用 Ubuntu 很多发行版,notify-send 命令会在右上角抛出那些很好的通知之一。像这样:
notify-send "My name is bash and I rock da house"
DisplayValue = A + B * Math.Exp(C * SliderValue);
内部滑块值(例如,从0到1)是通过反转公式获得的:
SliderValue = Math.Log((DisplayValue - A) / B) / C;
现在如何获得A、B和C?通过使用您给出的三个约束:
f(0.0) = 0
f(0.5) = 100
f(1.0) = 500
三个方程,三个未知数,这是用基本数学解决的:
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
生成以下代码:
double B = 100.0 / 3;
double C = Math.Log(16.0);
DisplayValue = B * (Math.Exp(C * SliderValue) - 1.0);
您可以看到,当内部值位于中间时,显示值为100:
编辑
:由于请求了通用公式,因此它在这里。给定:
f(0.0) = x
f(0.5) = y
f(1.0) = z
A、B和C的值为:
A = (xz - y²) / (x - 2y + z)
B = (y - x)² / (x - 2y + z)
C = 2 * log((z-y) / (y-x))
请注意,如果
是零,就没有解,你会得到一个被零除的结果。这是因为在这种情况下,比例实际上是线性的。你得处理好那个特殊的病例。
发布于 2009-08-05 18:49:22
Thezenity应用程序似乎就是您要找的。从以下位置获取输入
zenity,您可以指定一个变量,并使输出zenity --entry保存到它。它看起来像这样:
my_variable=$(zenity --entry)
如果您查看下面的值我的_变量现在,它将是在zenity弹出输入对话框中输入的内容。
如果您想给出一些提示,告诉用户(或您)应该在对话框中输入什么,请在对话框中添加--文本
切换到所需的标签。它看起来像这样:
my_variable=$(zenity --entry --text="What's my variable:")
Zenity有许多用于特定任务的其他很好的选项,因此您可能也希望通过以下命令查看这些选项zenity --帮助。一个例子是--日历选项,让您从图形日历中选择日期。
my_date=$(zenity --calendar)
它根据用户点击的内容给出了一个格式良好的日期:
echo ${my_date}
提供:
08/05/2009
还有滑块选择器、错误、列表等选项。
希望这能有所帮助。
https://stackoverflow.com/questions/7035
复制相似问题