Archive:Development/Tutorials/Shell Scripting with KDE Dialogs (zh CN): Difference between revisions
Tangooricha (talk | contribs) No edit summary |
Neverendingo (talk | contribs) m (Text replace - "<code bash>" to "<syntaxhighlight lang="bash">") |
||
Line 19: | Line 19: | ||
在设立了脚本中使用KDE对话框的关键字是一个叫做''kdialog''的应用程序的名字。要想生成一个如上所示的密码对话框,你能使用以下的命令行。 | 在设立了脚本中使用KDE对话框的关键字是一个叫做''kdialog''的应用程序的名字。要想生成一个如上所示的密码对话框,你能使用以下的命令行。 | ||
< | <syntaxhighlight lang="bash"> | ||
kdialog --password "Please enter the server access code:" | kdialog --password "Please enter the server access code:" | ||
</code> | </code> | ||
Line 29: | Line 29: | ||
每次你运行kdialog(或其他任何应用程序),总会有一个返回值表针该应用程序是否按照预期地运行,或是由于某些原因而出错。你可以通过使用$?来读取这个返回值,就如下面的例子。 | 每次你运行kdialog(或其他任何应用程序),总会有一个返回值表针该应用程序是否按照预期地运行,或是由于某些原因而出错。你可以通过使用$?来读取这个返回值,就如下面的例子。 | ||
< | <syntaxhighlight lang="bash"> | ||
[watson@bakerst]$ kdialog --password "Some Text" | [watson@bakerst]$ kdialog --password "Some Text" | ||
hello | hello | ||
Line 46: | Line 46: | ||
习惯上总是使用负数来表针错误,但是shell通常将该负数与256相加。这意味著如果你在列举一个所需的变量时出错,系统将返回-2,而$?返回的是254。 | 习惯上总是使用负数来表针错误,但是shell通常将该负数与256相加。这意味著如果你在列举一个所需的变量时出错,系统将返回-2,而$?返回的是254。 | ||
< | <syntaxhighlight lang="bash"> | ||
[watson@bakerst]$ kdialog --password | [watson@bakerst]$ kdialog --password | ||
kdialog: '<text>' missing. | kdialog: '<text>' missing. | ||
Line 58: | Line 58: | ||
在一个shell脚本中,你可能想要在运行后针对所选项检查返回值。 | 在一个shell脚本中,你可能想要在运行后针对所选项检查返回值。 | ||
< | <syntaxhighlight lang="bash"> | ||
kdialog --password "Please enter the server access code:" | kdialog --password "Please enter the server access code:" | ||
if [ $? = 0 ]; then | if [ $? = 0 ]; then | ||
Line 72: | Line 72: | ||
对于密码对话框,和其他提供输入能力的kdialog对话框来说,输出是被送到标准输出的。这允许你将输入重定向到一个文件,或通过管道送进另一个程序。在密码对话框的这个例子中,被输入的文本将像[[#Example 2|例2]]中那样被显示,除非你将其重定向 | 对于密码对话框,和其他提供输入能力的kdialog对话框来说,输出是被送到标准输出的。这允许你将输入重定向到一个文件,或通过管道送进另一个程序。在密码对话框的这个例子中,被输入的文本将像[[#Example 2|例2]]中那样被显示,除非你将其重定向 | ||
< | <syntaxhighlight lang="bash"> | ||
[watson@bakerst]$ kdialog --password "Enter the password" > password.file | [watson@bakerst]$ kdialog --password "Enter the password" > password.file | ||
[watson@bakerst]$ cat password.file | [watson@bakerst]$ cat password.file | ||
Secrter | Secrter | ||
</code> | </code> |
Revision as of 20:39, 29 June 2011
Development/Tutorials/Shell_Scripting_with_KDE_Dialogs
Languages: عربي | Asturianu | Català | Česky | Kaszëbsczi | Dansk | Deutsch | English | Esperanto | Español | Eesti | فارسی | Suomi | Français | Galego | Italiano | 日本語 | 한국어 | Norwegian | Polski | Português Brasileiro | Română | Русский | Svenska | Slovenčina | Slovenščina | српски | Türkçe | Tiếng Việt | Українська | 简体中文 | 繁體中文
介绍和程度要求
有一些关于KDE的误解,认为其只是一个图形环境。KDE不仅确实是一个杰出的桌面环境,它同样也对继承自Unix的命令行和脚本编程有良好支持。尤其是,KDE应用程序能够通过命令行加以控制,shell脚本也能够使用一些KDE部件。
要使用这个指导,你将需要对命令行的基础有个基本的熟悉,并且至少有shell脚本编程方面的知识。就像其他任何的编程环境,有效的shell脚本编程需要对该环境扎实的知识。即便如此,你对接下来的这些例子的理解只能是停留在一个很基本的程度。但不利的是,如果你对shell脚本编程十分熟悉,接下来的一些解释将会变得像是有点多余。
这个指导假定你在使用GNU bash shell,或其他直接兼容的产品。其他shell(特别是csh和其他的shell)的用户可能需要对这些例子做相应的修改。
shell脚本编程的技术和用途非常的多。有时一个脚本只对系统有运行的意义(如:corn),而其他时候脚本又是作为用来给用户使用的真正的应用程序。KDE包含一些特性允许你在shell脚本中使用KDE的一些功能,包括保存工作,以及能让你的脚本以为它是一个良好集成的程序集的一部分。
作为一个例子,考虑一个像这样的密码对话框。如果你需要一个用户输入一个密码,你能很容易地通过脚本生成一个看起来像这样的对话框:
kdialog的用法
例1:密码对话框
在设立了脚本中使用KDE对话框的关键字是一个叫做kdialog的应用程序的名字。要想生成一个如上所示的密码对话框,你能使用以下的命令行。
<syntaxhighlight lang="bash"> kdialog --password "Please enter the server access code:"
让我们多留意以下这段代码。kdialog的变量被用于控制对话框的类型,该对话框使用变量后的参数来创建具体的对话框。在这个密码对话框的案例中,你使用 --password 来特定该对话框类型,然后跟随着有关参数,其将作为显示在对话框内的文字。
例2:shell脚本的返回值
每次你运行kdialog(或其他任何应用程序),总会有一个返回值表针该应用程序是否按照预期地运行,或是由于某些原因而出错。你可以通过使用$?来读取这个返回值,就如下面的例子。
<syntaxhighlight lang="bash"> [watson@bakerst]$ kdialog --password "Some Text" hello [watson@bakerst]$ echo $? 0
- 注意 - $?变量在每个前台进程推出时都会更新。如果你需要在这之后使用该值,你需要另外地存储它。
在这个例子中,返回值为零。如果被选中的是Cancel键而不是OK键,该值将会等于一。
- 注意 - 这和基本部件的使用习惯有些不同。如果你对基本的Qt部件比较熟悉,这可能会有点混乱。即便如此,这对遵守接近shell脚本编程的标准来说很重要。
例3:shell脚本返回的错误值
习惯上总是使用负数来表针错误,但是shell通常将该负数与256相加。这意味著如果你在列举一个所需的变量时出错,系统将返回-2,而$?返回的是254。
<syntaxhighlight lang="bash"> [watson@bakerst]$ kdialog --password kdialog: '<text>' missing. kdialog: Use --help to get a list of available command line options. [watson@bakerst]$ echo $? 254
例4:使用返回值检查的密码对话框
在一个shell脚本中,你可能想要在运行后针对所选项检查返回值。
<syntaxhighlight lang="bash">
kdialog --password "Please enter the server access code:" if [ $? = 0 ]; then echo " you selected: OK" else echo " you selected: Cancel" fi
除了返回值以外,你同样也可以获得密码本身(假定你选的是OK)。毕竟,对于密码对话框来说,除了能使用结果,还有什么更重要的用处吗?
例5:在密码对话框中使用重定向
对于密码对话框,和其他提供输入能力的kdialog对话框来说,输出是被送到标准输出的。这允许你将输入重定向到一个文件,或通过管道送进另一个程序。在密码对话框的这个例子中,被输入的文本将像例2中那样被显示,除非你将其重定向
<syntaxhighlight lang="bash"> [watson@bakerst]$ kdialog --password "Enter the password" > password.file [watson@bakerst]$ cat password.file Secrter