Shell如何接收变量输入


Posted in 面试题 onAugust 06, 2016
在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...

面试题 相关文章推荐
网络、C以及其他硬件方面的面试题
Aug 23 面试题
C语言变量的命名规则都有哪些
Dec 27 面试题
"序列点" 是什么
Jul 29 面试题
JAVA和C++区别都有哪些
Mar 30 面试题
雅虎笔试题(字符串操作)
Mar 24 面试题
什么是数据库锁?Oracle中都有哪些类型的锁?
Aug 21 面试题
什么是URL
Dec 13 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
英智兴达软件测试笔试题
Oct 12 面试题
万户网络JAVA程序员岗位招聘笔试试卷
Jan 08 面试题
为什么说Ruby是一种真正的面向对象程序设计语言
Oct 30 面试题
如何定义一个可复用的服务
Sep 30 面试题
什么是makefile? 如何编写makefile?
Jan 02 #面试题
介绍一下grep命令的使用
Jun 12 #面试题
Linux中如何用命令创建目录
Jan 12 #面试题
Linux不知道文件后缀名怎么判断文件类型
Aug 21 #面试题
Linux管理员面试题 Linux admin interview questions
Jul 08 #面试题
shell程序中如何注释
Jan 28 #面试题
Linux Interview Questions For software testers
May 17 #面试题
You might like
详细解读PHP的Yii框架中登陆功能的实现
2015/08/21 PHP
学习YUI.Ext第五日--做拖放Darg&Drop
2007/03/10 Javascript
img onload事件绑定各浏览器均可执行
2012/12/19 Javascript
jquery图片播放浏览插件prettyPhoto使用详解
2014/12/19 Javascript
jQuery中before()方法用法实例
2014/12/25 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
Javascript中setTimeOut和setInterval的定时器用法
2015/06/12 Javascript
纯javascript实现分页(两种方法)
2015/08/26 Javascript
JavaScript构造函数详解
2015/12/27 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
Vue 项目中遇到的跨域问题及解决方法(后台php)
2018/03/28 Javascript
vue.js实现格式化时间并每秒更新显示功能示例
2018/07/07 Javascript
微信小程序定位当前城市的方法
2018/07/19 Javascript
在Vue methods中调用filters里的过滤器实例
2018/08/30 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
Jquery让form表单异步提交代码实现
2019/11/14 jQuery
Python3.2中Print函数用法实例详解
2015/05/19 Python
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
深入浅析Python传值与传址
2018/07/10 Python
pycharm执行python时,填写参数的方法
2018/10/29 Python
利用Python实现微信找房机器人实例教程
2019/03/10 Python
pip 安装库比较慢的解决方法(国内镜像)
2019/10/06 Python
Python使用gluon/mxnet模块实现的mnist手写数字识别功能完整示例
2019/12/18 Python
Pytorch自己加载单通道图片用作数据集训练的实例
2020/01/18 Python
双向RNN:bidirectional_dynamic_rnn()函数的使用详解
2020/01/20 Python
Tensorflow的梯度异步更新示例
2020/01/23 Python
Python单链表原理与实现方法详解
2020/02/22 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
python openCV实现摄像头获取人脸图片
2020/08/20 Python
吃透移动端 Html5 响应式布局
2019/12/16 HTML / CSS
俄罗斯香水和化妆品在线商店:Aroma-butik
2020/02/28 全球购物
《骆驼和羊》教学反思
2014/02/27 职场文书
国庆促销活动总结
2014/08/29 职场文书
2014年村委会工作总结
2014/11/24 职场文书
Html5调用企业微信的实现
2021/04/16 HTML / CSS
python实现自定义日志的具体方法
2021/05/28 Python