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面试题集
Dec 18 面试题
如何将字串String转换成整数int
Feb 21 面试题
Java的五个基础面试题
Feb 26 面试题
威盛公司软件C++工程师笔试题面试题
Jul 16 面试题
一些.net面试题
Oct 06 面试题
广州品高软件.net笔面试题目
Apr 18 面试题
什么是.net
Aug 03 面试题
C#如何进行LDAP用户校验
Nov 21 面试题
斯福泰克软件测试面试题
Feb 16 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
EJB发布WEB服务一般步骤
Oct 31 面试题
AJAX应用和传统Web应用有什么不同
Aug 24 面试题
什么是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
session 的生命周期是多长
2006/10/09 PHP
使用Apache的htaccess防止图片被盗链的解决方法
2013/04/27 PHP
PHP中exec函数和shell_exec函数的区别
2014/08/20 PHP
简单解析PHP程序的运行流程
2016/06/23 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
推荐dojo学习笔记
2007/03/24 Javascript
JavaScript Memoization 让函数也有记忆功能
2011/10/27 Javascript
jquery 单引号和双引号的区别及使用注意
2013/07/31 Javascript
js和jquery使按钮失效为不可用状态的方法
2014/01/26 Javascript
JavaScript中的值是按值传递还是按引用传递问题探讨
2015/01/30 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
jQuery实现获取隐藏div高度的方法示例
2017/02/09 Javascript
js a标签点击事件
2017/03/30 Javascript
JavaScript hasOwnProperty() 函数实例详解
2017/08/04 Javascript
jquery实现点击a链接,跳转之后,该a链接处显示背景色的方法
2018/01/18 jQuery
Element实现表格嵌套、多个表格共用一个表头的方法
2020/05/09 Javascript
[01:06:39]DOTA2上海特级锦标赛主赛事日 - 1 胜者组第一轮#1Liquid VS Alliance第三局
2016/03/02 DOTA
numpy.linspace 生成等差数组的方法
2018/07/02 Python
将tensorflow的ckpt模型存储为npy的实例
2018/07/09 Python
Flask-WTF表单的使用方法
2019/07/12 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
python shapely.geometry.polygon任意两个四边形的IOU计算实例
2020/04/12 Python
Python定义一个函数的方法
2020/06/15 Python
Python 多进程原理及实现
2020/12/21 Python
突袭HTML5之Javascript API扩展4—拖拽(Drag/Drop)概述
2013/01/31 HTML / CSS
多媒体专业自我鉴定
2014/02/28 职场文书
信息服务专业毕业生求职信
2014/03/02 职场文书
某集团股份有限公司委托书样本
2014/09/24 职场文书
个人买房协议书范本
2014/10/06 职场文书
政风行风评议心得体会
2014/10/21 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
安全知识竞赛主持词
2015/06/30 职场文书
决心书格式及范文
2019/06/24 职场文书
演讲稿之感恩老师(三篇范文)
2019/09/06 职场文书
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js