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

面试题 相关文章推荐
Collection和Collections的区别
May 02 面试题
说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
May 24 面试题
什么是聚集索引和非聚集索引
Jan 17 面试题
利达恒信公司.NET笔试题面试题
Mar 05 面试题
关于.NET, HTML的五个问题
Aug 29 面试题
C#中有没有静态构造函数,如果有是做什么用的?
Jun 04 面试题
Linux文件操作命令都有哪些
Feb 27 面试题
捷科时代的软件测试笔试题
Nov 09 面试题
客服端调用EJB对象的几个基本步骤
Jan 15 面试题
如何写一个自定义标签
Dec 28 面试题
如何通过jdbc调用存储过程
Apr 19 面试题
如何执行一个shell程序
Nov 23 面试题
什么是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中的字符串函数
2006/10/09 PHP
PHP实现删除非站内外部链接实例代码
2014/06/17 PHP
php基于PDO连接MSSQL示例DEMO
2016/07/13 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
js null undefined 空区别说明
2010/06/13 Javascript
ExtJs grid行 右键菜单的两种方法
2010/06/19 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
jquery垂直公告滚动实现代码
2013/12/08 Javascript
JS+Canvas 实现下雨下雪效果
2016/05/18 Javascript
JavaScript实现弹窗效果代码分析
2017/03/09 Javascript
基于wordpress的ajax写法详解
2018/01/02 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
详解如何在Node.js的httpServer中接收前端发送的arraybuffer数据
2018/11/11 Javascript
vue插件draggable实现拖拽移动图片顺序
2018/12/01 Javascript
浅谈webpack构建工具配置和常用插件总结
2020/05/11 Javascript
使用Vant完成通知栏Notify的提示操作
2020/11/11 Javascript
[01:13:17]Secret vs NB 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
python调用短信猫控件实现发短信功能实例
2014/07/04 Python
基于进程内通讯的python聊天室实现方法
2015/06/28 Python
用Python实现斐波那契(Fibonacci)函数
2016/03/25 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
python截取两个单词之间的内容方法
2018/12/25 Python
python的一些加密方法及python 加密模块
2019/07/11 Python
python 和c++实现旋转矩阵到欧拉角的变换方式
2019/12/04 Python
jupyternotebook 撤销删除的操作方式
2020/04/17 Python
CSS3中HSL和HSLA的简单使用示例
2015/07/14 HTML / CSS
VICHY薇姿英国官网:全球专业敏感肌护肤领先品牌
2017/07/04 全球购物
施华洛世奇匈牙利官网:SWAROVSKI匈牙利
2019/07/06 全球购物
简历自我评价怎么写呢?
2014/01/06 职场文书
大学军训感言
2014/01/10 职场文书
收银员岗位职责
2014/02/07 职场文书
蟋蟀的住宅教学反思
2014/04/26 职场文书
检讨书怎么写
2015/01/23 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
Spring Boot DevTools 全局配置学习指南
2022/03/31 Java/Android