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

面试题 相关文章推荐
Yahoo的PHP面试题
May 26 面试题
JDK安装目录下有哪些内容
Aug 25 面试题
Java工程师面试集锦之Spring框架
Jun 16 面试题
在使用非全零作为空指针内部表达的机器上, NULL是如何定义
Nov 09 面试题
北京SQL新华信咨询
Sep 30 面试题
.net开发工程师面试题
Feb 25 面试题
linux面试题参考答案(8)
Apr 19 面试题
介绍一下Linux中的链接
Jun 05 面试题
十一个高级MySql面试题
Oct 06 面试题
Java中的类包括什么内容?设计时要注意哪些方面
May 23 面试题
swtich是否能作用在byte上,是否能作用在long上,是否能作用在String上
Jul 06 面试题
这76道Java面试题及答案,祝你能成功通过面试
Apr 16 面试题
什么是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
最贵的咖啡是怎么产生的,它的风味怎么样?
2021/03/04 新手入门
PHP curl实现抓取302跳转后页面的示例
2014/07/04 PHP
php利用cookie实现自动登录的方法
2014/12/10 PHP
php插入排序法实现数组排序实例
2015/02/16 PHP
PHP如何通过AJAX方式实现登录功能
2015/11/23 PHP
php设计模式之观察者模式实例详解【星际争霸游戏案例】
2020/03/30 PHP
元素未显示设置width/height时IE中使用currentStyle获取为auto
2014/05/04 Javascript
浅谈javascript中for in 和 for each in的区别
2015/04/23 Javascript
jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证
2015/06/25 Javascript
JS实现双击编辑可修改状态的方法
2015/08/14 Javascript
js带缩略图的图片轮播效果代码分享
2015/09/14 Javascript
跟我学习javascript的异步脚本加载
2015/11/20 Javascript
jQuery xml字符串的解析、读取及查找方法
2016/03/01 Javascript
js实现多张图片延迟加载效果
2017/07/17 Javascript
vue mint-ui tabbar变组件使用
2018/05/04 Javascript
基于ionic实现下拉刷新功能
2018/05/10 Javascript
npm全局模块卸载及默认安装目录修改方法
2018/05/15 Javascript
webuploader分片上传的实现代码(前后端分离)
2018/09/10 Javascript
浅谈在vue中使用mint-ui swipe遇到的问题
2018/09/27 Javascript
nodejs中实现用户注册路由功能
2019/05/20 NodeJs
JS定义函数的几种常用方法小结
2019/05/23 Javascript
通过滑动翻页效果实现和移动端click事件问题
2021/01/26 Javascript
[52:05]EG vs OG 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/18 DOTA
[01:06]DOTA2小知识课堂 Ep.01 TP出门不要忘记帮队友灌瓶哦
2019/12/05 DOTA
详解Python验证码识别
2016/01/25 Python
python导包的几种方法(自定义包的生成以及导入详解)
2019/07/15 Python
python GUI库图形界面开发之PyQt5线程类QThread详细使用方法
2020/02/26 Python
基于html5实现的图片墙效果
2014/10/16 HTML / CSS
红领巾广播站广播稿
2014/02/01 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
2014副镇长民主生活会个人对照检查材料思想汇报
2014/09/30 职场文书
2014年小学英语教师工作总
2014/12/03 职场文书
2016年“6.26”禁毒宣传月系列活动总结
2016/04/05 职场文书
Python通过m3u8文件下载合并ts视频的操作
2021/04/16 Python
Python开发工具Pycharm的安装以及使用步骤总结
2021/06/24 Python
Win11显卡控制面板打开显卡设置方法
2022/04/20 数码科技