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...

面试题 相关文章推荐
请说出你所知道的线程同步的方法
Apr 19 面试题
编写strcpy函数
Jun 24 面试题
说一下mysql, oracle等常见数据库的分页实现方案
Sep 29 面试题
南京软件公司的.net程序员笔试题
Aug 31 面试题
最新远光软件笔试题面试题内容
Nov 08 面试题
动态密码技术
Oct 18 面试题
可以使用抽象函数重写基类中的虚函数吗
Jun 02 面试题
C#里面如何判断一个Object是否是某种类型(如Boolean)?
Feb 10 面试题
linux面试题参考答案(10)
Oct 26 面试题
广州喜创信息技术有限公司JAVA软件工程师笔试题
Oct 17 面试题
JDBC操作数据库的基本流程是什么
Oct 28 面试题
北京振戎融通Java面试题
Sep 03 面试题
什么是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系列学习之日期函数使用介绍
2012/08/18 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
php 模拟GMAIL,HOTMAIL(MSN),YAHOO,163,126邮箱登录的详细介绍
2013/06/18 PHP
PHP 实现explort() 功能的详解
2013/06/20 PHP
php的无刷新操作实现方法分析
2020/02/28 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
一个小型js框架myJSFrame附API使用帮助
2008/06/28 Javascript
jQuery EasyUI API 中文文档 - ComboTree组合树
2011/10/11 Javascript
javascript 进阶篇3 Ajax 、JSON、 Prototype介绍
2012/03/14 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
2014/10/31 Javascript
js实现div拖动动画运行轨迹效果代码分享
2015/08/27 Javascript
Javascript实现Array和String互转换的方法
2015/12/21 Javascript
JS学习之表格的排序简单实例
2016/05/16 Javascript
Bootstrap编写一个在当前网页弹出可关闭的对话框 非弹窗
2016/06/30 Javascript
AngularJS基础 ng-keyup 指令简单示例
2016/08/02 Javascript
jquery获取table指定行和列的数据方法(当前选中行、列)
2016/11/07 Javascript
jquery购物车结算功能实现方法
2020/10/29 Javascript
深入学习nodejs中的async模块的使用方法
2017/07/12 NodeJs
Node.js  REPL (交互式解释器)实例详解
2017/08/06 Javascript
解决低版本的浏览器不支持es6的import问题
2018/03/09 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
python实现聚类算法原理
2018/02/12 Python
Python中的单继承与多继承实例分析
2018/05/10 Python
Flask 上传自定义头像的实例详解
2020/01/09 Python
Python实现文件压缩和解压的示例代码
2020/08/12 Python
详解python对象之间的交互
2020/09/29 Python
HTML5+WebSocket实现多文件同时上传的实例
2016/12/29 HTML / CSS
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
C/C++程序员常见面试题二
2015/11/19 面试题
12岁生日演讲稿
2014/05/14 职场文书
机械系毕业生求职信
2014/05/28 职场文书
关爱留守儿童标语
2014/06/18 职场文书
酒会邀请函
2015/01/31 职场文书
法制主题班会教案
2015/08/13 职场文书