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

面试题 相关文章推荐
为什么使用接口?
Aug 13 面试题
Collection和Collections的区别
May 02 面试题
这段代码难道不该打印出56吗
Feb 27 面试题
试述DBMS的主要功能
Nov 13 面试题
一套带网友答案的.NET笔试题
Dec 06 面试题
C#面试问题
Jul 29 面试题
介绍一下write命令
Sep 24 面试题
网友共享的几个面试题关于Java和Unix等方面的
Sep 08 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上?
Mar 30 面试题
UNIX文件名称有什么规定
Mar 25 面试题
Unix里面如何在后台运行程序
Oct 14 面试题
我们没有写servlet的构造方法,那么容器是怎么创建servlet的实例呢
Apr 24 面试题
什么是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
如何用php获取文件名后缀
2013/06/09 PHP
php中{}大括号是什么意思
2013/12/01 PHP
php中ob_flush函数和flush函数用法分析
2015/03/18 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
用PHP去掉文件头的Unicode签名(BOM)方法
2017/06/22 PHP
php+ajax实现无刷新文件上传功能(ajaxuploadfile)
2018/02/11 PHP
JavaScript中的几个关键概念的理解-原型链的构建
2011/05/12 Javascript
js中将HTMLCollection/NodeList/伪数组转换成数组的代码
2011/07/31 Javascript
IE6下focus与blur错乱的解决方案
2011/07/31 Javascript
jquery数据验证插件(自制,简单,练手)实例代码
2013/10/24 Javascript
javascript快速排序算法详解
2014/09/17 Javascript
jQuery简单实现网页选项卡特效
2014/11/24 Javascript
jquery实现可关闭的倒计时广告特效代码
2015/09/02 Javascript
整理Javascript函数学习笔记
2015/12/01 Javascript
Node.js本地文件操作之文件拷贝与目录遍历的方法
2016/02/16 Javascript
详解js数组的完全随机排列算法
2016/12/16 Javascript
ajax 提交数据到后台jsp页面及页面跳转问题
2017/01/19 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
python轻松实现代码编码格式转换
2015/03/26 Python
读取本地json文件,解析json(实例讲解)
2017/12/06 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python调用scp向服务器上传文件示例
2019/12/22 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
Python Tornado之跨域请求与Options请求方式
2020/03/28 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
python实现自动清理重复文件
2020/08/24 Python
用60行代码实现Python自动抢微信红包
2021/02/04 Python
css3进阶之less实现星空动画的示例代码
2019/09/10 HTML / CSS
CSS3实现淘宝留白的方法
2020/06/05 HTML / CSS
使用Canvas操作像素的方法
2018/06/14 HTML / CSS
英国家电购物网站:Sonic Direct
2019/03/26 全球购物
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
自主招生自荐信范文
2015/03/04 职场文书
2015年全国爱眼日活动方案
2015/05/05 职场文书
opencv用VS2013调试时用Image Watch插件查看图片
2021/07/26 Python
Mysql超详细讲解死锁问题的理解
2022/04/01 MySQL