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

面试题 相关文章推荐
如何使用PHP session
Apr 21 面试题
类的核心特性有哪些
Jan 01 面试题
新电JAVA笔试题目
Aug 31 面试题
"序列点" 是什么
Jul 29 面试题
下述程序的作用是计算机数组中的最大元素值及其下标
Nov 26 面试题
一道SQL存储过程面试题
Oct 07 面试题
什么是数据库锁?Oracle中都有哪些类型的锁?
Aug 21 面试题
System.Array.CopyTo()和System.Array.Clone()有什么区别
Jun 20 面试题
什么是URL
Dec 13 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
介绍一下RMI的基本概念
Dec 17 面试题
创立科技Java面试题
Nov 29 面试题
什么是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判断远程url是否有效的几种方法小结
2011/10/08 PHP
浅谈php fopen下载远程文件的函数
2016/11/18 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
PHP检查端口是否可以被绑定的方法示例
2018/08/09 PHP
PHP文件打开关闭及读写操作示例解析
2020/08/06 PHP
ASP.NET jQuery 实例16 通过控件CustomValidator验证RadioButtonList
2012/02/03 Javascript
使用mini-define实现前端代码的模块化管理
2014/12/25 Javascript
JavaScript取得键盘按下方向键是哪个的方法
2015/08/04 Javascript
jQuery往返城市和日期查询实例讲解
2015/10/09 Javascript
jQuery 跨域访问解决原理案例详解
2016/07/09 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
vue3.0 CLI - 2.5 - 了解组件的三维
2018/09/14 Javascript
vue实现动态显示与隐藏底部导航的方法分析
2019/02/11 Javascript
Vue+Vuex实现自动登录的知识点详解
2020/03/04 Javascript
Vue中nprogress页面加载进度条的方法实现
2020/11/13 Javascript
JS canvas实现画板和签字板功能
2021/02/23 Javascript
[02:00]DAC2018主宣传片——龙征四海,剑问东方
2018/03/20 DOTA
[01:03:03]VP vs Mineski 2018国际邀请赛淘汰赛BO3 第一场 8.22
2018/08/23 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Python处理JSON时的值报错及编码报错的两则解决实录
2016/06/26 Python
Python连接SQLServer2000的方法详解
2017/04/19 Python
Python实现单词翻译功能
2017/06/06 Python
python清理子进程机制剖析
2017/11/23 Python
使用pandas中的DataFrame数据绘制柱状图的方法
2018/04/10 Python
python 读取txt中每行数据,并且保存到excel中的实例
2018/04/29 Python
python获取代码运行时间的实例代码
2018/06/11 Python
Django中使用MySQL5.5的教程
2019/12/18 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
2014年党员学习“三严三实”思想汇报
2014/09/15 职场文书
2014年租房协议书范本
2014/10/30 职场文书
抗洪救灾感谢信
2015/01/22 职场文书
起诉书格式范文
2015/05/20 职场文书
《我的长生果》教学反思
2016/02/20 职场文书
在SQL Server中使用 Try Catch 处理异常的示例详解
2022/07/15 SQL Server