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

面试题 相关文章推荐
2019年Java 最常见的 面试题
Oct 19 面试题
C语言变量的命名规则都有哪些
Dec 27 面试题
凌阳科技股份有限公司C++程序员面试题笔试题
Nov 20 面试题
关于递归的一道.NET面试题
May 12 面试题
结构和类有什么异同
Jul 16 面试题
P/Invoke是什么
Jul 31 面试题
extern是什么意思
Mar 10 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
如何开发安全的AJAX应用
Mar 26 面试题
EJB包括(SessionBean,EntityBean)说出他们的生命周期,及如何管理事务的?
Feb 17 面试题
怎样在 Applet 中建立自己的菜单(MenuBar/Menu)?
Jun 20 面试题
请用Java实现列出某个目录下的所有文件
Sep 23 面试题
什么是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
动漫女神老婆无限好,但日本女生可能就不是这么一回事了!
2020/03/04 日漫
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
php中使用临时表查询数据的一个例子
2013/02/03 PHP
apache配置虚拟主机的方法详解
2013/06/17 PHP
Windows下的PHP安装pear教程
2014/10/24 PHP
php中注册器模式类用法实例分析
2015/11/03 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JavaScript Sort 表格排序
2009/10/31 Javascript
在firefox和Chrome下关闭浏览器窗口无效的解决方法
2014/01/16 Javascript
jquery 中的each()跳出循环的语句
2014/05/23 Javascript
js实现点击后将文字或图片复制到剪贴板的方法
2014/08/04 Javascript
jQuery实现倒计时(倒计时年月日可自己输入)
2016/12/02 Javascript
Bootstrap基本组件学习笔记之面板(14)
2016/12/08 Javascript
微信小程序实现下拉刷新和轮播图效果
2017/11/21 Javascript
nodejs项目windows下开机自启动的方法
2017/11/22 NodeJs
vue+element实现批量删除功能的示例
2018/02/28 Javascript
详解Vue-cli3 项目在安卓低版本系统和IE上白屏问题解决
2019/04/14 Javascript
微信小程序如何使用canvas二维码保存至手机相册
2019/07/15 Javascript
使用jQuery实现掷骰子游戏
2019/10/24 jQuery
vue cli 3.0通用打包配置代码,不分一二级目录
2020/09/02 Javascript
解决Antd Table组件表头不对齐的问题
2020/10/27 Javascript
React Ant Design树形表格的复杂增删改操作
2020/11/02 Javascript
分享15个最受欢迎的Python开源框架
2014/07/13 Python
python实现中文分词FMM算法实例
2015/07/10 Python
python脚本监控docker容器
2016/04/27 Python
python实现中文转换url编码的方法
2016/06/14 Python
Python numpy实现二维数组和一维数组拼接的方法
2018/06/05 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
在python3中使用shuffle函数要注意的地方
2020/02/28 Python
Python使用jupyter notebook查看ipynb文件过程解析
2020/06/02 Python
Python面向对象实现方法总结
2020/08/12 Python
css3一个简易的 LED 数字时钟实现方法
2020/01/15 HTML / CSS
社团活动总结报告
2014/06/27 职场文书
见习报告的格式
2014/10/31 职场文书
红与黑读书笔记
2015/06/29 职场文书
nginx反向代理时如何保持长连接
2021/03/31 Servers