您的位置:首页 > 其它

Scale计算公式 - 关于电压值与二进制数值间的转换

2008-10-31 11:57 435 查看
dialog:能够动态生成一个文本窗口,并且这个窗口支持众多的窗口元素。
dialog: 命令
窗口元素:
文本框
单选框
复选框
进度条
dialog所能够提供给我们的窗体,选择完成以后(敲了回车之后),其相关信息没有输出到标准输出,而是输出到错误输出
# yum -y install dialog
# dialog --print-maxsize  #这个只是自己的值,换个人大小可能就不一样了,所以以后设置的时候尽可能不要把窗口设置的过大
MaxSize: 35, 134
# dialog --backtitle "First Window" --title "Create User" --yesno "HostName." 10 30



在是选项按下回车后
# echo $?
0
如果在否选项按下回车后
# echo $?
1
# dialog --backtitle "First Window" --title "Create User" --inputbox "HostName." 10 30    #加上--inputbox选项后,就可以输入信息了



还没有按回车



# Hostname=`dialog --stdout --backtitle "First Window" --title "Create User" --inputbox "Hostname." 10 30`



这次就不在后面显示了
# echo $Hostname
hostname
注:先把所有的输出定向到标准输出(--stdout)上来,再使用一个变量获取命令的执行结果。既然这样,我们就能够在脚本中调用了

如何在脚本中使用dialog
例:创建用户
# vim adduser.sh
#!/bin/bash
#
Username=`dialog --stdout --backtitle "Add a user." --title "Username" --inputbox "Please input a username: " 10 30`
RETVAL=$?
if [ $RETVAL -eq 0 -a -n $Username ]; then      #判定$?,如果其值等于0,且用户名不为空
useradd $Username
echo $Username | passwd --stdin $Username
fi
# bash -n adduser.sh
# bash adduser.sh



# vim adduser.sh
if [ $RETVAL -eq 0 -a -n "$Username" ]; then    #把$Username用引号引起来



为了不让其显示这些信息,而且如果用户存在,怎么办?用户存在了,你一上来就创建用户也不行
# vim adduser.sh
if [ $RETVAL -eq 0 -a -n "$Username" ] && ! id $Username &> /dev/null; then
# bash adduser.sh



没有任何信息返回,应该是成功了。但是这样也不知道是创建成功还是由于用户以存在而没有创建成功,则再改一下
# vim adduser.sh
#!/bin/bash
#
Username=`dialog --stdout --backtitle "Add a user." --title "Username" --inputbox "Please input a username: " 10 30`
RETVAL=$?
if [ $RETVAL -eq 0 -a -n "$Username" ]; then
if ! id $Username &> /dev/null; then
useradd $Username
echo $Username | passwd --stdin $Username &> /dev/null
dialog --backtitle "Add a user." --title "Add a user." --msgbox "Add user $Username finished." 10 30
else
dialog --backtitle "Add a user." --title "Add a user." --msgbox "$Username is already created." 10 30
fi
fi
# bash adduser.sh







现在来实现输入账号、密码
# vim adduser.sh

#!/bin/bash
#
Username=`dialog --stdout --backtitle "Add a user." --title "Username" --inputbox "Please input a username: " 10 30`
RETVAL=$?
if [ $RETVAL -eq 0 -a -n "$Username" ]; then #判定$?,如果其值等于0,且用户名不为空,且当前主机上不存在这个用户
if ! id $Username &> /dev/null; then
useradd $Username
Pass=`dialog --stdout --backtitle "Password for $Username" --title "Passward" --passwordbox "Please enter the password: " 10 30`
echo $Pass | passwd --stdin $Username &> /dev/null
dialog --backtitle "Add a user." --title "Add a user." --msgbox "Add user $Username finished." 10 30
else
dialog --backtitle "Add a user." --title "Add a user." --msgbox "$Username is already created." 10 30
fi
fi
# bash -n adduser.sh
# bash adduser.sh






输入密码时,没有显示任何信息



如果想让用户在输入密码时显示*号

# vim adduser.sh
Pass=`dialog --stdout --backtitle "Password for $Username" --title "Passward" --insecure --passwordbox "Please enter the password: " 10 30`
#加入了--insecure选项
# bash adduser.sh






现在显示*号了



如果用户没有给密码怎么办

# vim adduser.sh

# dialog --title "Cal" --calendar "Canlendar" 6 45 8 4 2015



# dialog --title "Checklist" --checklist "Yourself" 10 30 2 h hight no w width yes



# vim backup.sh
#!/bin/bash
#
Dir=('/etc/httpd' '/etc/pam.d' '/etc/vsftpd')
Source=`dialog --stdout --title "Backup" --checklist "Choose the dir you want to backup: " 10 50 3 0 /etc/httpd 0 1 /etc/pam.d 1 2 /etc/vsftpd 0`
echo $Source
Source=`echo $Source | tr -d '"'`
for I in $Source; do
echo ${Dir[$I]}
done
# bash backup.sh



会显示
"0" "2"
/etc/httpd
/etc/vsftpd
# vim showusage.sh
#!/bin/bash
#
ShowItem=`dialog --stdout --title "Show Usages" --menu "Choose the Usage you want: " 12 35 6 1 "Show disk usages" 2 "Show physical memory usages" 3 "Show swap usages" 4 "quit"`

case $ShowItem in
"1")
df -lh;;
"2")
free -m | grep "^Me";;
"3")
free -m | grep "^Sw";;
"4")
exit;;
esac
# bash showusage.sh



Filesystem                Size  Used Avail Use% Mounted on
/dev/sda2                  48G   23G   24G  50% /
tmpfs                     1.9G   21M  1.9G   2% /dev/shm
/dev/sda1                 190M   51M  129M  29% /boot
/dev/mapper/myvg-mydata   9.8G   54M  9.2G   1% /mydata
# bash showusage.sh



Mem:          3776       2483       1292        144        661        575
# bash showusage.sh



Swap:         9999        182       9817
# vim gauge.sh
#!/bin/bash
#
(for Percent in {1..100};do
echo "XXX"
echo "Percent: ${Percent}%"
echo "XXX"
echo $Percent
sleep 0.2
done) | dialog --clear --gauge "Gauge" 8 60 0
# bash gauge.sh






# 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




本文出自 “三哥” 博客,请务必保留此出处http://523958392.blog.51cto.com/9871195/1631380
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: