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

面试题 相关文章推荐
Web Service面试题:如何搭建Axis2的开发环境
Jun 20 面试题
extern在函数声明中是什么意思
Jan 19 面试题
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
Apr 28 面试题
Sql面试题
Mar 20 面试题
.NET面试题:什么是反射
Sep 30 面试题
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
Nov 26 面试题
介绍一下常见的木马种类
Nov 15 面试题
C#可否对内存进行直接的操作
Feb 26 面试题
Linux文件操作命令都有哪些
Jul 23 面试题
北京鼎普科技股份有限公司软件测试面试题
Apr 07 面试题
新媒传信软件测试面试题
Feb 24 面试题
测试驱动开发的主要步骤是什么
Dec 10 面试题
什么是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
信用卡效验程序
2006/10/09 PHP
在WAMP环境下搭建ZendDebugger php调试工具的方法
2011/07/18 PHP
php file_get_contents取文件中数组元素的方法
2017/04/01 PHP
php插件Xajax使用方法详解
2017/08/31 PHP
PHP多进程编程之僵尸进程问题的理解
2017/10/15 PHP
PHP简单实现正则匹配省市区的方法
2018/04/13 PHP
PHP实现常用排序算法的方法
2020/02/05 PHP
最常用的12种设计模式小结
2011/08/09 Javascript
利用Javascript判断操作系统的类型实现不同操作系统下的兼容性
2013/01/29 Javascript
客户端js性能优化小技巧整理
2013/11/05 Javascript
浅析javascript 定时器
2014/12/23 Javascript
关于JavaScript和jQuery的类型判断详解
2016/10/08 Javascript
flag和jq on 的绑定多个对象和方法(必看)
2017/02/27 Javascript
jquery实现倒计时小应用
2017/09/19 jQuery
vue插件开发之使用pdf.js实现手机端在线预览pdf文档的方法
2018/07/12 Javascript
24个解决实际问题的ES6代码片段(小结)
2020/02/02 Javascript
js利用iframe实现选项卡效果
2020/08/09 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
Python使用MD5加密字符串示例
2014/08/22 Python
Python正则表达式匹配ip地址实例
2014/10/09 Python
跟老齐学Python之总结参数的传递
2014/10/10 Python
python 3.5下xadmin的使用及修复源码bug
2017/05/10 Python
Python3计算三角形的面积代码
2017/12/18 Python
Python图像处理之图像的缩放、旋转与翻转实现方法示例
2019/01/04 Python
python接口自动化(十七)--Json 数据处理---一次爬坑记(详解)
2019/04/18 Python
python图像处理模块Pillow的学习详解
2019/10/09 Python
基于Python正确读取资源文件
2020/09/14 Python
如何使用python-opencv批量生成带噪点噪线的数字验证码
2020/12/21 Python
Herve Leger官网:标志性绷带连衣裙等
2018/12/26 全球购物
机械工程系毕业生求职信
2013/09/27 职场文书
会计出纳岗位职责
2013/12/25 职场文书
最新离婚协议书范本
2014/08/19 职场文书
小区门卫岗位职责范本
2014/08/24 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
创业者如何撰写出一份打动投资人的商业计划书?
2019/07/02 职场文书
PHP解决高并发问题
2021/04/01 PHP