linux dialog 源码,Linux dialog详解(图形化shell)

0818b9ca8b590ca3270a3433284dd417.png

4.密码框

格式:

dialog  --passwordbox text height width [init]

例子:

1

2

# dialog --title "Password"  --passwordbox \

"Please give a password for the new user:"

10

35

0818b9ca8b590ca3270a3433284dd417.png

这样我们的密码就暴露出来了,是不是很不安全,所以通常我们会加上一个安全选项

--insecure   将每个字符用*来显示出来

1

2

# dialog  --title  "Password"  --insecure  \

--

passwordbox

"Please  give  a  password  for the  new  user:"

10

30

0818b9ca8b590ca3270a3433284dd417.png

5.文本框

格式:dialog --textbox file height width

例子:

1

#dialog --title "The fstab" --textbox /etc/fstab  17 40

0818b9ca8b590ca3270a3433284dd417.png

6.菜单框

格式:dialog --menu text height width  menu-height tag1 item1 tag2 item2 …

例子:

1

2

#dialog --title "Pick a choice" --menu "Choose one" 12 35 5 \

1

"say hello to everyone"

2

"thanks for your support"

3

"exit"

0818b9ca8b590ca3270a3433284dd417.png

7.Fselect框(文件选框)

格式:dialog --fselect filepath height width

例子:

1

#dialog --title "Pick one file" --fselect /root/ 7 40

0818b9ca8b590ca3270a3433284dd417.png

8.复选框格式:dialog  --checklist "Test" height width  menu-height  tag1 item1 tag2 item2 … 例子:

1

2

# dialog --backtitle "Checklist" --checklist "Test" 20 50 10 \

Memory

Memory

_Size

1

Dsik

Disk

_Size

2

<

b

>

<

/

b

>

0818b9ca8b590ca3270a3433284dd417.png

9.显示日历格式:dialog --calendar "Date" height width day month year例子:#显示当前日期

1

# dialog --title "Calendar" --calendar "Date" 5 50

0818b9ca8b590ca3270a3433284dd417.png

#显示指定日期

1

# dialog --title "Calendar" --calendar "Date" 5 50 1 2 2013

0818b9ca8b590ca3270a3433284dd417.png

10.进度框架

格式:dialog --gauge text height width  []

例子:

#固定进度显示

1

#dialog --title "installation pro" --gauge "installation" 10 30 10

0818b9ca8b590ca3270a3433284dd417.png

#实时动度进度

1

2

#for i in {1..100} ;do echo $i;done | dialog --title \

"installation pro"

--

gauge

"installation"

10

30

0818b9ca8b590ca3270a3433284dd417.png

#编辑到脚本中

编辑一个gauge.sh 的脚本

内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

#!/bin/bash

# vim gauge.sh

declare

-

i

PERCENT

=

0

(

for

I

in

/

etc

/

*

;

do

if

[

$

PERCENT

-

le

100

]

;

then

cp

-

r

$

I

/

tmp

/

test

2

>

/

dev

/

null

echo

"XXX"

echo

"Copy the file $I ..."

echo

"XXX"

echo

$

PERCENT

fi

let

PERCENT

+=

1

sleep

0.1

done

)

|

dialog

--

title

"coping"

--

gauge

"starting to copy files..."

6

50

0

#bash  gauge.sh  (执行脚本的时候注意修改权限)

0818b9ca8b590ca3270a3433284dd417.png

11.from框架(表单)

格式:dialog --form text height width formheight [ label y x item y x flen ilen ] ...

其中

flen 表示field length,定义了:选定字段中显示的长度

ilen 表示 input-length, 定义了:在外地输入的数据允许的长度

使用up/down(或ctrl/ N,ctrl/ P)在使用领域之间移动。使用tab键在窗口之间切换。

例子:

# dialog --title "Add a user" --form "Please input the infomation of new user:" 12 40 4  \

"Username:" 1  1 "" 1  15  15  0  \

"Full name:" 2  1 "" 2  15  15  0  \

"Home Dir:" 3  1 "" 3  15  15  0  \

"Shell:"    4   1 "" 4  15  15  0

0818b9ca8b590ca3270a3433284dd417.png

综合应用示例:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

#!/bin/bash

yesno

(

)

{

dialog

--

title

"First screen"

--

backtitle

"Test Program"

--

clear

--

yesno

\

"Start this test program or not ? \nThis decesion have to make by you. "

16

51

# yes is 0, no is 1 , esc is 255

result

=

$

?

if

[

$

result

-

eq

1

]

;

then

exit

1

;

elif

[

$

result

-

eq

255

]

;

then

exit

255

;

fi

username

}

username

(

)

{

cat

/

dev

/

null

>

/

tmp

/

test

.

username

dialog

--

title

"Second screen"

--

backtitle

"Test Program"

--

clear

--

inputbox

\

"Please input your username (default: hello) "

16

51

"hello"

2

>

/

tmp

/

test

.

username

result

=

$

?

if

[

$

result

-

eq

1

]

;

then

yesno

elif

[

$

result

-

eq

255

]

;

then

exit

255

;

fi

password

}

password

(

)

{

cat

/

dev

/

null

>

/

tmp

/

test

.

password

dialog

--

insecure

--

title

"Third screen"

--

backtitle

"Test Program"

--

clear

--

passwordbox

\

"Please input your password (default: 123456) "

16

51

"123456"

2

>

/

tmp

/

test

.

password

result

=

$

?

if

[

$

result

-

eq

1

]

;

then

username

elif

[

$

result

-

eq

255

]

;

then

exit

255

;

fi

occupation

}

occupation

(

)

{

cat

/

dev

/

null

>

/

tmp

/

test

.

occupation

dialog

--

title

"Forth screen"

--

backtitle

"Test Program"

--

clear

--

menu

\

"Please choose your occupation: (default: IT)"

16

51

3

\

IT

"The worst occupation"

\

CEO

"The best occupation"

\

Teacher

"Not the best or worst"

2

>

/

tmp

/

test

.

occupation

result

=

$

?

if

[

$

result

-

eq

1

]

;

then

password

elif

[

$

result

-

eq

255

]

;

then

exit

255

;

fi

finish

}

finish

(

)

{

dialog

--

title

"Fifth screen"

--

backtitle

"Test Program"

--

clear

--

msgbox

\

"Congratulations! The test program has finished!\n Username: $(cat /tmp/test.username)\n Password: $(cat /tmp/test.password)\n Occupation: $(cat /tmp/test.occupation)"

16

51

result

=

$

?

if

[

$

result

-

eq

1

]

;

then

occupation

elif

[

$

result

-

eq

255

]

;

then

exit

255

;

fi

}

yesno

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

0818b9ca8b590ca3270a3433284dd417.png

本文转自:http://gdcsy.blog.163.com/blog/static/1273436092013016069255/

本站整理:http://www.ttlsa.com/html/3085.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/410851.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ubifs开销测试

问题 在板子上观察到56M的ubi卷&#xff0c;挂载上ubifs之后&#xff0c;df -h显示可用空间约为50M。 如此计算开销超过了10%&#xff0c;那么这个开销随容量如何变化呢&#xff0c;是固定为10%吗还是有其他规律&#xff1f; 理论计算 简单查了下资料&#xff0c;没找到明确的计…

C# 使用数据库SQLite

1.数据库下载地址 http://sqlite.phxsoftware.com/ 2.下载完成添加引用System.Data.SQLite.dll 3.SQLite操作通用类 代码 usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.Data.SQLite;usingSystem.Data;usingSystem.Data.Common;namespacePNet{ …

linux系统安装arcsde,Linux操作系统安装ArcSDE10

测试sde用户是否可以连通[Oraclelocalhost ~]$ sqlplus sde/sdeorclSQL*Plus: Release 11.2.0.1.0 Production on Wed Feb 22 11:46:18 2012Copyright (c) 1982, 2009, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 …

28 | 读写分离有哪些坑?

在上一篇文章中&#xff0c;我和你介绍了一主多从的结构以及切换流程。今天我们就继续聊聊一主多从架构的应用场景&#xff1a;读写分离&#xff0c;以及怎么处理主备延迟导致的读写分离问题。 我们在上一篇文章中提到的一主多从的结构&#xff0c;其实就是读写分离的基本结构了…

NOIP2003提高组

第一题 神经网络 【题目描述】 人工神经网络&#xff08;Artificial Neural Network&#xff09;是一种新兴的具有自我学习能力的计算系统&#xff0c;在模式识别、函数逼近及贷款风险评估等诸多领域有广泛的应用。对神经网络的研究一直是当今的热门方向&#xff0c;兰兰同学在…

巧妙解决element-ui下拉框选项过多的问题

1. 场景描述 不知道你有没有这样的经历&#xff0c;下拉框的选项很多&#xff0c;上万个选项甚至更多&#xff0c;这个时候如果全部把数据放到下拉框中渲染出来&#xff0c;浏览器会卡死&#xff0c;体验会特别不好 用人会说element-ui的select有一个remote-method&#xff0c;…

【2019年07月08日】A股最便宜的股票

查看更多A股最便宜的股票&#xff1a;androidinvest.com/CNValueTop/ 便宜指数 PE PB 股息 ROE&#xff0c;四因子等权&#xff0c;数值越大代表越低估。 本策略只是根据最新的数据来选股&#xff0c;完全无人工参与的过程&#xff0c;所以并不能对接下来的利润或业绩做预测…

Sharepoint 2010新体验之一-----基于Claims的全新验证机制

在SharePoint Server 2007中世界中&#xff0c;如果我们想在一个Web应用程序中并存多种验证机制&#xff0c;只能通过“扩展Web应用程序”来实现&#xff0c;这种方式实现上是通过不同的应用程序来交互同一内容数据库。但是在SharePoint 2010中&#xff0c;我们看到了新的身份验…

手写springmvc

手写springmvc 既然已经手写了spring的IOC&#xff0c;那springmvc肯定也要尝试写写了。手写spring博客:https://www.cnblogs.com/xiaojiesir/p/11139203.html SpringMVC的运行流程&#xff1a; &#xff08;1&#xff09;首先浏览器发送请求——>DispatcherServlet&#xf…

linux可用机场客户端,Linux系统可用的6款Bittorrent客户端

大家都知道迅雷目前尚不支持Linux系统&#xff0c;其实使用Bittorrent客户端进行下载未尝不是一个好的选择&#xff0c;这里给大家介绍6款Linux可用Bittorrent客户端&#xff0c;方便经常需要进行文件下载的Linux用户。1.KtorrentKtorrent是KDE桌面环境默认安装的Bittorrent工具…

H3C 环路避免机制一:路由毒化

转载于:https://www.cnblogs.com/fanweisheng/p/11156838.html

.net自定义控件Control、WebControl、CompositeControl

.net自定义控件Control、WebControl、CompositeControl 一、呈现方法 1、Control主要有以下4个方法用于呈现 1 //该方法为入口方法2 public virtual void RenderControl (HtmlTextWriter writer) 3 { 4 this.RenderControl(writer,this.xxxAdapter); 5 } 6 7 p…

About Me

&#xff08;参考Matirx67大牛的格式&#xff09; 网名&#xff1a;Sephiroth Lee 年龄&#xff1a;不会算 生日&#xff1a;1994-1-20 性别&#xff1a;男 血型&#xff1a;不知道 星座&#xff1a;摩羯座 家乡&#xff1a;河北 学校&#xff1a;衡水中学 地址&#xff1a;衡水…

Java中连接池

最近在看书&#xff0c;其中有一段是&#xff1a; 相信有大佬已经能看得出来这是《企业IT架构转型之道》这本书了&#xff08;这是一本不错的书&#xff0c;推荐工作时长>2年的软件人员可以看看&#xff09;~~ 对于红色框内的那段文字&#xff0c;我有两个概念不是很明白&am…

C语言中 用选择结构编译算法,C语言程序设计立体化教程(高等教育立体化精品系列规划教材)...

导语内容提要李刚、唐炜主编的《C语言程序设计立体化教程(高等教育立体化精品系列规划教材)》主要分为四篇&#xff1a;语法基础篇、程序设计结构篇、初级应用篇和高级应用篇&#xff1b;其中第一篇语法基础部分介绍了C语言概述和C语言数据与运算&#xff1b;第二篇程序设计结构…

第二次实验报告(漏)

C程序设计实验报告 实验项目&#xff1a; 1.if语句的应用2.switch/case语句的应用3.switch/case语句嵌套if语句的应用4.switch/case结构的嵌套应用5.分析程序 姓名&#xff1a;王治林   实验地点&#xff1a;514教室   实验时间&#xff1a;2019.4.3 一、实验目的与要求 …

自我总结篇之vue的组件通信(父传子 子传父 非父子)

一&#xff1a;父传子 父组件代码如下&#xff1a; <template><div class"father"><child :messagemessage :message2message2></child> </div> </template> <script> import child from /components/child.vue export de…

浅谈“微服务”

微服务概述 1.1 易于扩展 1.2 部署简单 1.3 技术异构性 数据库的服务化切分 2.1 什么是“分库分表”&#xff1f; 2.2 数据库扩展的几种方式 2.3 分库分表的几种方式 2.4 引入分库分表中间件后面临的问题 2.5 现有分库分表中间件的横向对比 微服务架构中的分布式事务 3.1 什么…

liigo:爱可视70平板电脑使用感受,遗憾与满足并存

我想大部分人来这里&#xff0c;不是想听美言的。许多资料、宣传性文章、评测、视频等等&#xff0c;网络上已经有很多了&#xff08;其中外文占很大比例&#xff09;。 我想大部分人来这里&#xff0c;是想听真正的使用感受的。我想&#xff0c;我这里提到的许多内容&#xff…

visual studio 正则表达式 查找与替换文本

好多时候想要重构一些代码&#xff0c;但是修改起来发现很麻烦&#xff0c;因为简单的文本替换不能满足需求&#xff0c;这时候就要借助ide的力量了。还好visual studio 2010支持正则表达式查找和替换。如下图所示&#xff1a; document.all.domElementA.style.visibility hid…