Shell如何接收变量输入


Posted in 面试题 onSeptember 24, 2012
在shell中使用read 命令接收变量输入,
语法:
read variable [variable......]
例:
$ cat color6
echo This program prompts for user input
echo “please enter your favorite two colors -> \c”
read color_a color_b
echo The colors you entered are: $color_b $color_a
$ chmod +x color6
$ color6
This program prompts for user input
Please enter your favorite two colors -> red blue
The colors you entered are: blue red
$ color6
This program prompts for user input
Please enter you favorite two colors -> red blue tan
The color you enterd are :blue tan red

用户使用命令行参数传递信息进程序,在命令执行之前,用户必须知道正确的语法。有一种情况,你想要在用户执行程序的时候提示他输入这些参数。read命令就是用来在程序执行的时候收集终端键入的信息。
通常使用echo命令来提供用户一个提示,让用户知道程序正在等待一些输入,同时通知用户应该输入的类型。因此,每一个read命令应该在echo命令前面。
read命令会给出一个变量名的列表,这些变量会被用户在提示符下输入的词赋值(以空格分隔)。如果read命令定义的变量比输入的词要多,剩余变量会被赋空值。如果用户输入的词要比变量多,剩余的数据会赋给列表中的最后一个变量。
一旦被赋值,你就可以象其他的shell变量一样存取这些变量。

以下例子提示用户输入要被安装的文件名:
$ cat my_install3
echo $0 will install files into your bin directory
echo “Enter the names of the files -> \c”
read filenames
mv $filenames $HOME/bin
echo Instllation is complete
ctrl + d
$ chmod +x my_install13

$ my_install13
my_install13 will install files into your bin directory
Enter the names of the files -> f1 f2
Installaton is complete

这个安装会提示用户输入chmod和移动到$HOME/bin的文件名。这个程序给用户更多的关于应该输入数据情况的指引。而不像install2中用户必须在命令行中提供文件名。用户使用程序不需要特殊的语法。程序让用户确切地知道要输入什么。所有的输入的文件名都会被赋值给变量filenames。

Tags in this post...

面试题 相关文章推荐
PHP经典面试题
Sep 03 面试题
用你熟悉的语言写一个连接ORACLE数据库的程序,能够完成修改和查询工作
Jun 11 面试题
C语言50道问题
Oct 23 面试题
JAVA和C++区别都有哪些
Mar 30 面试题
空指针到底是什么
Aug 07 面试题
经典c++面试题五
Dec 17 面试题
What's the difference between deep copy and shallow copy? (深拷贝与浅拷贝有什么区别)
Nov 10 面试题
说一下Linux下有关用户和组管理的命令
Aug 18 面试题
施惠特软件测试面试题以及笔试题
May 13 面试题
如何查看在weblogic中已经发布的EJB
Jun 01 面试题
异步传递消息系统的作用
May 01 面试题
如何定义一个可复用的服务
Sep 30 面试题
什么是makefile? 如何编写makefile?
Aug 08 #面试题
介绍一下grep命令的使用
Jun 28 #面试题
Linux中如何用命令创建目录
Dec 02 #面试题
Linux不知道文件后缀名怎么判断文件类型
Apr 26 #面试题
Linux管理员面试题 Linux admin interview questions
Nov 01 #面试题
shell程序中如何注释
Feb 17 #面试题
Linux Interview Questions For software testers
Jun 02 #面试题
You might like
php下连接ftp实现文件的上传、下载、删除文件实例代码
2010/06/03 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
php实现阳历阴历互转的方法
2015/10/28 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
微信公众号开发之文本消息自动回复php代码
2016/08/08 PHP
php利用云片网实现短信验证码功能的示例代码
2017/11/18 PHP
游戏人文件夹程序 ver 3.0
2006/07/14 Javascript
由点击页面其它地方隐藏div所想到的jQuery的delegate
2013/08/29 Javascript
jQuery控制iFrame(实例代码)
2013/11/19 Javascript
jquery实现当滑动到一定位置时固定效果
2014/06/17 Javascript
JavaScript中遍历对象的property的3种方法介绍
2014/12/30 Javascript
jQuery实现hover合成事件的方法
2015/08/06 Javascript
基于JQuery实现的跑马灯效果(文字无缝向上翻动)
2016/12/02 Javascript
Angular 常用指令实例总结整理
2016/12/13 Javascript
微信小程序 登录的简单实现
2017/04/19 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
值得收藏的vuejs安装教程
2017/11/21 Javascript
VUE实现可随意拖动的弹窗组件
2018/09/25 Javascript
利用原生JavaScript实现造日历轮子实例代码
2019/05/08 Javascript
[51:06]2018DOTA2亚洲邀请赛3月29日 小组赛A组 KG VS Liquid
2018/03/30 DOTA
微信小程序跳一跳游戏 python脚本跳一跳刷高分技巧
2018/01/04 Python
Python实现找出数组中第2大数字的方法示例
2018/03/26 Python
使用Python快速搭建HTTP服务和文件共享服务的实例讲解
2018/06/04 Python
Flask之flask-session的具体使用
2018/07/26 Python
Django实现一对多表模型的跨表查询方法
2018/12/18 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
css3学习系列之移动属性详解
2017/07/04 HTML / CSS
HTML5超炫酷粒子效果的进度条的实现示例
2019/08/23 HTML / CSS
毕业生的自我评价
2013/12/30 职场文书
主管会计岗位职责
2014/03/13 职场文书
党风廉政建设责任书
2014/04/14 职场文书
常务副县长“三严三实”对照检查材料思想汇报
2014/10/05 职场文书
2015年工程部工作总结
2015/04/30 职场文书
MySQL创建高性能索引的全步骤
2021/05/02 MySQL
日本动漫十大公认神作:第五现已全网禁播,《死亡笔记》在榜
2022/03/18 日漫