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

面试题 相关文章推荐
什么是smarty? Smarty的优点是什么?
Aug 11 面试题
PHP如何防止SQL注入
May 03 面试题
String这个类型的class为何定义成final?
Nov 13 面试题
在C语言中实现抽象数据类型什么方法最好
Jun 26 面试题
经典c++面试题三
Jul 08 面试题
SQL SERVER面试资料
Mar 30 面试题
Oracle性能调优原则
May 03 面试题
触发器(trigger)的功能都有哪些?写出一个触发器的例子
Sep 17 面试题
采用怎样的方法保证数据的完整性
Dec 02 面试题
C#面试题问题集
Apr 02 面试题
什么是makefile? 如何编写makefile?
Jan 02 面试题
山海经纬软件测试笔试题和面试题
Apr 02 面试题
什么是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代码
2010/02/16 PHP
php中定义网站根目录的常用方法
2010/08/08 PHP
2014过年倒计时示例
2014/01/31 PHP
自制PHP框架之模型与数据库
2017/05/07 PHP
PHP开发api接口安全验证操作实例详解
2020/03/26 PHP
jquery nth-child()选择器的简单应用
2010/07/10 Javascript
js中判断Object、Array、Function等引用类型对象是否相等
2012/08/29 Javascript
jQuery中:selected选择器用法实例
2015/01/04 Javascript
JavaScript判断浏览器类型的方法
2015/02/10 Javascript
jquery+json实现数据二级联动的方法
2015/11/28 Javascript
jQuery+json实现的简易Ajax调用实例
2015/12/14 Javascript
Javascript缓存API
2016/06/14 Javascript
js编写的treeview使用方法
2016/11/11 Javascript
深入理解在JS中通过四种设置事件处理程序的方法
2017/03/02 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
JavaScript定时器setTimeout()和setInterval()详解
2017/08/18 Javascript
解决vue2.0动态绑定图片src属性值初始化时报错的问题
2018/03/14 Javascript
20多个小事例带你重温ES10新特性(小结)
2019/09/29 Javascript
python使用PyGame绘制图像并保存为图片文件的方法
2015/04/24 Python
安装dbus-python的简要教程
2015/05/05 Python
python得到windows自启动列表的方法
2018/10/14 Python
django模板加载静态文件的方法步骤
2019/03/01 Python
Python generator生成器和yield表达式详解
2019/08/08 Python
python实现扫雷游戏
2020/03/03 Python
Python批量安装卸载1000个apk的方法
2020/04/10 Python
css3 响应式媒体查询的示例代码
2019/09/25 HTML / CSS
自动化职业生涯规划书范文
2014/01/03 职场文书
仓库管理员岗位职责
2014/03/19 职场文书
领导干部作风整顿剖析材料
2014/10/11 职场文书
2014年安全管理工作总结
2014/12/01 职场文书
财政局长个人总结
2015/03/04 职场文书
2015年医德医风工作总结
2015/04/02 职场文书
2016年六一儿童节开幕词
2016/03/04 职场文书
读鲁迅先生的经典名言
2019/08/20 职场文书
用Python进行栅格数据的分区统计和批量提取
2021/05/27 Python
python3 字符串str和bytes相互转换
2022/03/23 Python