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

面试题 相关文章推荐
简述你对Statement,PreparedStatement,CallableStatement的理解
Mar 25 面试题
介绍java中初始化块的使用
Sep 11 面试题
请问如下代码执行后a和b的值分别是什么
May 05 面试题
C语言开发工程师测试题
Dec 20 面试题
用C语言实现文件读写操作
Oct 27 面试题
指针和引用有什么区别
Jan 13 面试题
网络安全方面的面试题
Jan 07 面试题
描述RIP和OSPF区别以及特点
Jan 17 面试题
成都思必达公司C#程序员招聘面试题
Jun 26 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
Mar 23 面试题
若通过ObjectOutputStream向一个文件中多次以追加方式写入object,为什么用ObjectInputStream读取这些object时会产生StreamCorruptedException?
Oct 17 面试题
Structs界面控制层技术
Oct 11 面试题
什么是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开发GUI
2006/10/09 PHP
PHP操作Memcache实例介绍
2013/06/14 PHP
php inc文件使用的风险和注意事项
2013/11/12 PHP
PHP使用CURL获取302跳转后的地址实例
2014/05/04 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
php设计模式之装饰模式应用案例详解
2019/06/17 PHP
Laravel定时任务的每秒执行代码
2019/10/22 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
js function定义函数使用心得
2010/04/15 Javascript
jquery-easyui关闭tab自动切换到前一个tab
2010/07/29 Javascript
初识Node.js
2015/03/20 Javascript
jquery-tips悬浮提示插件分享
2015/07/31 Javascript
全面解析多种Bootstrap图片轮播效果
2016/05/27 Javascript
jquery过滤特殊字符',防sql注入的实现方法
2016/08/17 Javascript
JavaScript 栈的详解及实例代码
2017/01/22 Javascript
Bootstrap缩略图的创建方法
2017/03/22 Javascript
angularjs之$timeout指令详解
2017/06/13 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
jQuery实现页码跳转式动态数据分页
2017/12/31 jQuery
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
使用vue-cli webpack 快速搭建项目的代码
2018/11/21 Javascript
vue 页面回退mounted函数不执行的解决方案
2020/07/26 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
python使用cStringIO实现临时内存文件访问的方法
2015/03/26 Python
Python3爬虫教程之利用Python实现发送天气预报邮件
2018/12/16 Python
详解Django CAS 解决方案
2019/10/30 Python
详解python环境安装selenium和手动下载安装selenium的方法
2020/03/17 Python
在Tensorflow中实现leakyRelu操作详解(高效)
2020/06/30 Python
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
什么是URL
2015/12/13 面试题
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
面料业务员岗位职责
2013/12/26 职场文书
秋季运动会广播稿
2014/02/22 职场文书
服务宗旨标语
2014/07/01 职场文书
城市规划应届毕业生自荐信
2014/07/04 职场文书
公司员工辞职信范文
2015/05/12 职场文书