read [option]... [name ...]
-p ‘PROMPT‘ 提示
-t TIMEOUT 暂停
将一个行从标准输入读入以后,使用空格符分割成字段,将切割的结果对位(变量不止1个)保存在对应的变量中。
例如:
[root@localhost ~]# read name 让你输入数据
obama
[root@localhost ~]# echo $name name的值就是obama
obama
[root@localhost ~]#
变量不止1个:
[root@localhost ~]# read a b c
how are you?
[root@localhost ~]# echo $a
how
[root@localhost ~]# echo $b
are
[root@localhost ~]# echo $c
you?
[root@localhost ~]#
[root@localhost ~]# read a b c
how are
[root@localhost ~]# echo $a
how
[root@localhost ~]# echo $b
are
[root@localhost ~]# echo $c 给的字符串不够,最后一个没有被赋值
[root@localhost ~]#
使用echo命令 进行提示
[root@localhost ~]# echo -n "Enter a username:";read name ;号在linux中表示隔开2个命令,顺序执行; echo -n 不换行
Enter a username:amy
[root@localhost ~]# echo $name
amy
[root@localhost ~]#
read -p 命令 进行提示
[root@localhost ~]# read -p "Enter a username:" name
Enter a username:amy
[root@localhost ~]# echo $name
amy
[root@localhost ~]#
read -t 命令 限定时间,超时即结束命令
[root@localhost ~]# read -p "Enter a username:" -t 5 name
Enter a username:[root@localhost ~]# echo $name 等待5秒以后,用户还没输入,命令即结束。name里没值。
[root@localhost ~]#
如果用户超时后还没输入,可以设置个默认值
[root@localhost ~]# [ -z "$name" ]&&name="elizabeth" -z 是否为空 ;注意[] 号里面2边要有空格
[root@localhost ~]# echo $name
elizabeth
[root@localhost ~]#
bash -n /path/to/some_script
检测脚本中的语法错误 仅检查语法、格式错误,逻辑错误不行; 如果变量值为空,检查不出,可以使用bash-x
bash -x /path/to/some_script 调试执行,显示每一个代码的详细过程,可以找到哪一步错误。 + :表示执行了 不带+ :表示输出
调试执行
示例: # 都是注释
vim read.sh
#!/bin/bash
# Version: 0.0.1
# Author: MageEdu
# Description: read testing
read -p "Enter a disk special file: " diskfile
[ -z "$diskfile" ] && echo "Fool" && exit 1
if fdisk -l | grep "^Disk $diskfile" &> /dev/null; then
fdisk -l $diskfile
else
echo "Wrong disk special file."
exit 2
fi
本文出自 “11647200” 博客,请务必保留此出处http://11657200.blog.51cto.com/11647200/1825399
原文地址:http://11657200.blog.51cto.com/11647200/1825399