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

面试题 相关文章推荐
一些PHP的面试题
May 06 面试题
介绍一下Java的安全机制
Jun 28 面试题
接口中的方法可以是abstract的吗
Jul 23 面试题
一个SQL面试题
Aug 21 面试题
一些高难度的SQL面试题
Nov 29 面试题
linux面试题参考答案(6)
Aug 29 面试题
软件测试常见笔试题
Feb 04 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
GC是什么?为什么要有GC?
Dec 08 面试题
介绍下static、final、abstract区别
Jan 30 面试题
Java语言程序设计测试题改错题部分
Jul 22 面试题
J2EE中常用的名词进行解释
Nov 09 面试题
什么是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
CI框架中通过hook的方式实现简单的权限控制
2015/01/07 PHP
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
2017/10/07 PHP
JQuery 网站换肤功能实现代码
2009/11/02 Javascript
从零开始学习jQuery (二) 万能的选择器
2010/10/01 Javascript
js 函数调用模式小结
2011/12/26 Javascript
jquery多行滚动/向左或向上滚动/响应鼠标实现思路及代码
2013/01/23 Javascript
jquery在Chrome下获取图片的长宽问题解决
2013/03/20 Javascript
JavaScript基础篇之变量作用域、传值、传址的简单介绍与实例
2013/06/29 Javascript
javascript页面加载完执行事件代码
2014/02/11 Javascript
JS获取网页图片name属性的方法
2015/04/01 Javascript
jQuery中text() val()和html()的区别实例详解
2016/06/28 Javascript
jquery-mobile表单的创建方法详解
2016/11/23 Javascript
老生常谈js-react组件生命周期
2017/05/02 Javascript
详解vue.js的事件处理器v-on:click
2017/06/27 Javascript
JavaScript实现鼠标滚轮控制页面图片切换功能示例
2017/10/14 Javascript
axios 处理 302 状态码的解决方法
2018/04/10 Javascript
vue实例中data使用return包裹的方法
2018/08/27 Javascript
vue权限管理系统的实现代码
2019/01/17 Javascript
node删除、复制文件或文件夹示例代码
2019/08/13 Javascript
[42:52]Optic vs Serenity 2018国际邀请赛淘汰赛BO3 第二场 8.22
2018/08/23 DOTA
python连接mysql并提交mysql事务示例
2014/03/05 Python
python实现查询IP地址所在地
2015/03/29 Python
python基础知识小结之集合
2015/11/25 Python
tensorflow使用神经网络实现mnist分类
2018/09/08 Python
使用Python处理BAM的方法
2018/09/28 Python
详解在Python中以绝对路径或者相对路径导入文件的方法
2019/08/30 Python
python GUI库图形界面开发之PyQt5信号与槽的高级使用技巧装饰器信号与槽详细使用方法与实例
2020/03/06 Python
Python中的整除和取模实例
2020/06/03 Python
Harrods英国:世界领先的奢侈品百货商店
2020/09/23 全球购物
宝宝满月酒主持词和仪式流程
2014/03/27 职场文书
教师个人读书活动总结
2014/07/08 职场文书
2014年后勤工作总结
2014/11/18 职场文书
营销计划书
2015/01/17 职场文书
热血教师观后感
2015/06/10 职场文书
中国古代史学名著《战国策》概述
2019/08/09 职场文书
Python 的演示平台支持 WSGI 接口的应用
2022/04/20 Python