#!/bin/bash
#  User inputs his first name and last name.  Program shows his full name.
# History:
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH

read -p "Please input your first name: " firstname  # 提示使用者输入
read -p "Please input your last name:  " lastname   # 提示使用者输入

echo -e "\nYour full name is: $firstname $lastname" # 结果由屏幕输出

执行脚本:

[root@SOR_SYS test]# sh read-p.sh
Please input your first name: zhu
Please input your last name:  ying

Your full name is: zhu ying
[root@SOR_SYS test]#

下面我们来看看read的用法:

[root@SOR_SYS ~]#  read [-pt] variable

选项与参数:
-p  :后面可以接提示字符!
-t  :后面可以接等待的『秒数!』这个比较有趣~不会一直等待使用者啦!
范例一:让用户由键盘输入一内容,将该内容变成名为 atest 的变量
[root@SOR_SYS ~]# read atest
This is a test        <==此时光标会等待你输入!请输入左侧文字看看
[root@www ~]# echo $atest
This is a test          <==你刚刚输入的数据已经变成一个变量内容!
范例二:提示使用者 30 秒内输入自己的大名,将该输入字符串作为名为 named 的变量内容
[root@www ~]# read -p "Please keyin your name: " -t 30 named
Please keyin your name: zhuying  <==注意看,会有提示字符喔!
[root@www ~]# echo $named
zhuying      <==输入的数据又变成一个变量的内容了!

read 之后不加任何参数,直接加上变量名称,那么底下就会主动出现一个空白行等待你的输入(如范例一)。 如果加上 -t 后面接秒数,例如上面的范例二,那么 30 秒之内没有任何动作时, 该命令就会自动略过了~如果是加上 -p ,嘿嘿!在输入的光标前就会有比较多可以用的提示字符给我们参考!

==========》》》》》》》》》》》

例子:以下只是我在其他脚本中截取的一部分,为了方便大家更好的理解read的用法~

cpsDeploy_menu(){
echo "   --- CPS APP Menu---   "
echo "   help app command: getdeploy app_name  "
#echo "deploy $size $app_name "
echo "   Check app status: status app_name:app_name "
echo "   Deploy Command  : deploy IP  app_name source_path/"
#echo

while true ; do
   read -p "App> "  appcomm deploylist(以前一直不晓得还能出现多个变量)

case "$appcomm" in
        "quit")

break
             ;;
        "getdeploy")
             echo "  Search $deploylist  :"
             num=`grep "^$deploylist" cpsapplist.prop  | wc  -l`
             if [ $num \> 0 ]
             then
                  getdeployapp $deploylist
             else
                  echo "   Please sure the app name is correct!   "
             fi
             ;;
        "deploy")
             echo " cps app deployment now...."
             echo "deploy directory: $deploylist"
             deploywarapp  $deploylist
             #getdeploylist $deploylist
             ;;
        "status")
             getappstatus $deploylist
             ;;
   esac

done

}

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

ps:当子程序完成后,在子程序内的各项变量或动作将会结束而不会传回到父程序中』

[root@www scripts]# echo $firstname $lastname
[root@SOR_SYS test]# sh read-p.sh 
<==确认了,这两个变量并不存在喔!
Please input your first name: zhu
Please input your last name:  ying 
<==看吧!在 script 运行中,这两个变量有生效
[root@www scripts]# echo $firstname $lastname
<==事实上,这两个变量在父程序的 bash 中还是不存在的!

如果将程序相关性绘制成图的话,我们以下图来说明。当你使用直接运行的方法来处理时,系统会给予一支新的 bash 让我们来运行 read-p.sh里面的命令,。 当 read-p.sh运行完毕后,子程序 bash 内的所有数据便被移除,因此上表的练习中,在父程序底下 echo $firstname 时, 就看不到任何东西了!这样可以理解吗?

sh read-p.sh

简单脚本测试--对谈式脚本@read相关推荐

  1. 怎么编写Linux脚本循环语句,shell脚本及常用循环语句

    博文结构 什么是shell 简单编辑shell 循环语句 一.什么是shell及作用 Shell字面理解就是个"壳",是操作系统(内核)与用户之间的桥梁,充当命令解释器的作用,将用 ...

  2. linux 编写脚本示范,Linux-scripts-简单脚本和脚本的执行

    9.Scripts 9.1什么是 Shell scripts shell script 是利用 shell 的功能所写的一个『程序 (program)』,这个程序是使用纯文本文件,将一些 shell ...

  3. [原创]快钱99bill网站安全性测试漏洞之“跨站式脚本注入”

    [原创]快钱99bill网站安全性测试漏洞之"跨站式脚本注入" 网站安全性测试,尤为重要,电子支付网站更是如此,本文作者以实例介绍了 (1)"Yeepay网站安全测试漏洞 ...

  4. 实战Perl脚本测试

    实战Perl脚本测试(转) 这是一篇关于perl脚本测试的总结性文章,其中提到了很多实用的模块,如果文中介绍的不够详细,请到cpan上搜索该模块并查阅其文档.  1基本语法检查 Perl语言的哲学是& ...

  5. 防止删库悲剧发生,这里有个Bash脚本测试框架,危险代码一测便知

    萧箫 发自 凹非寺  量子位 报道 | 公众号 QbitAI 想要清理文件夹内部分冗余文件,结果误删了同事刚合的代码? (例如,在rm -rf /usr/bin/test的/usr后面加了个空格,结果 ...

  6. Appium环境的安装与配置,Python测试脚本测试

    Appium自动化测试系列1 - Appium环境的安装与配置 发表于4个月前(2015-01-27 14:34)   阅读(803) | 评论(0) 0人收藏此文章, 我要收藏 赞0 寻找 会'偷懒 ...

  7. linux测试磁盘io脚本,脚本分享:Linux下磁盘io测试

    这两天在测试Dell的PS6000存储,在linux下也懒得去找测试工具了,就直接使用dd命令进行I/O测试,但因为需要测试的数据很多,从512b到4M的块,每一档都要进行读写的测试,这要是人肉来做, ...

  8. 简单的exp全备份脚本及部署过程(step by step)

    简单的exp全备份脚本及部署过程(step by step) 源于以前同事的备份需求,现在我很少用exp,基本上是rman+standby了 需求:每天数据库exp全备份+自动删除7天前的备份,系统只 ...

  9. 软件测试培训之十个无脚本测试方案

    1.自然语言处理(NLP) 目前,一些最新的无脚本自动化测试工具能够通过采用NLP语法,来创建各种测试用例.就像编写简单的英语语句一样,用户可以轻松地实现测试用例的自动化.此类工具一般会带有AI驱动的 ...

最新文章

  1. App调用safar
  2. 智源重大研究方向“智能体系架构与芯片”发布会(活动报名)
  3. 美国科学家发现:AI跟人类一样,都是需要“睡觉”的
  4. pta l2-7(家庭房产)
  5. ffmpeg入门及java操作ffmpeg对视频进行处理
  6. stevedore——启用方式
  7. Amazon Alexa 新里程碑: 50000 个功能、 20000 种设备、 3500 个品牌
  8. 让服务器突破性能极限 阿里云神龙论文入选计算机顶会ASPLOS
  9. Tomcat工作原理及简单模拟实现
  10. mysql 定一个函数_mysql自定义函数
  11. NAND FLASH Controler for IMX31
  12. 用Openswan组建Linux IPSec ---第一部分
  13. 华为发布会2019鸿蒙,鸿蒙,来了!华为正式发布鸿蒙OS操作系统
  14. html 图片不能选中状态,css图片不让选中状态如何实现
  15. 从南极之争谈软件架构十个技巧,及成功团队具备的气质
  16. (12)梅森素数与完全数
  17. CurveLane-NAS: Unifying Lane-Sensitive Architecture Search and Adaptive Poin
  18. Excel表格中如何快速在空白处添加短横杠(-)
  19. 君正Magik算法平台介绍
  20. 基于声音的击键信号识别

热门文章

  1. 什么是MapReduce
  2. 网线如何制作和如何使用?
  3. 树莓派3B+如何完成对产品的升级改造
  4. Java:自动类型转换和强制类型转换的规则
  5. 自由人NFT元农(Meta Agriculture)发行计划
  6. CSS3变形和动画:旋转、扭曲、缩放、位移、矩阵 、原点 transform-origin、过渡属性 transition-property、过渡所需时间 transition-duration...
  7. 应用Druid监控SQL语句的执行情况
  8. C语言中.c文件与.h文件 的使用
  9. uniapp 来电显示悬浮窗插件(支持锁屏来电) Ba-CallerID
  10. “第一股”争夺战:每日优鲜、叮咚买菜及美菜网谁能杀出重围?