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如何防止SQL注入
May 03 面试题
联强国际笔试题面试题
Jul 10 面试题
华为c/c++笔试题
Jan 25 面试题
2019史上最全Database工程师题库
Dec 06 面试题
什么是Assembly(程序集)
Sep 14 面试题
Javascript如何发送一个Ajax请求
Jan 26 面试题
软件测试常见笔试题
Feb 04 面试题
EJB的基本架构
Sep 22 面试题
遇到的Mysql的面试题
Jun 29 面试题
十一个高级MySql面试题
Oct 06 面试题
介绍下Java中==和equals的区别
Sep 01 面试题
解释一下ruby中的特殊方法与特殊类
Feb 26 面试题
什么是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
PHP6 中可能会出现的新特性预览
2014/04/04 PHP
PHP实现将多个文件中的内容合并为新文件的方法示例
2017/06/10 PHP
一个实用的php验证码类
2017/07/06 PHP
Laravel中的Auth模块详解
2017/08/17 PHP
详解php中curl返回false的解决办法
2019/03/18 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
javascript检查日期格式的函数[比较全]
2008/10/17 Javascript
JavaScript 组件之旅(三):用 Ant 构建组件
2009/10/28 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
JavaScript高级教程5.6之基本包装类型(详细)
2015/11/23 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
iframe与主框架跨域相互访问实现方法
2017/09/14 Javascript
实例讲解javascript实现异步图片上传方法
2017/12/05 Javascript
简单谈谈CommonsChunkPlugin抽取公共模块
2017/12/31 Javascript
vue中使用 pako.js 解密 gzip加密字符串的方法
2019/06/10 Javascript
在layui.use 中自定义 function 的正确方法
2019/09/16 Javascript
详解在IDEA中将Echarts引入web两种方式(使用js文件和maven的依赖导入)
2020/07/11 Javascript
Python2和Python3.6环境解决共存问题
2018/11/09 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Django如何将URL映射到视图
2019/07/29 Python
pandas DataFrame行或列的删除方法的实现示例
2019/08/02 Python
numpy按列连接两个维数不同的数组方式
2019/12/06 Python
TensorFLow 数学运算的示例代码
2020/04/21 Python
利于python脚本编写可视化nmap和masscan的方法
2020/12/29 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
英国知名小木屋定制网站:Tiger Sheds
2020/03/06 全球购物
安全生产中长期规划实施方案
2014/02/21 职场文书
保密工作责任书
2014/04/16 职场文书
小学生环保倡议书
2014/05/15 职场文书
物业消防安全责任书
2014/07/23 职场文书
催款函范本大全
2015/06/24 职场文书
房屋转让协议书(标准范本)
2016/03/21 职场文书
pytorch查看网络参数显存占用量等操作
2021/05/12 Python