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解析URL是哪个函数?怎么用?
May 09 面试题
PHP中如何创建和修改数组
May 02 面试题
北京银河万佳Java面试题
Mar 21 面试题
外企C语言笔试题
Nov 10 面试题
database面试题
Mar 28 面试题
网络安全类面试题
Aug 01 面试题
what is the difference between ext2 and ext3
Aug 25 面试题
华为python面试题
May 03 面试题
如何用Java判断一个文件或目录是否存在
Nov 19 面试题
Java的类与C++的类有什么不同
Jan 18 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
高级Java程序员面试要点
Aug 02 面试题
什么是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
不用数据库的多用户文件自由上传投票系统(2)
2006/10/09 PHP
IIS7.X配置PHP运行环境小结
2011/06/09 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
[原创]php实现数组按拼音顺序排序的方法
2017/05/03 PHP
php无限极分类实现方法分析
2019/07/04 PHP
读JavaScript DOM编程艺术笔记
2011/11/15 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
react-router JS 控制路由跳转实例
2017/06/15 Javascript
Form表单上传文件(type="file")的使用
2017/08/03 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
Bootstrap Table 双击、单击行获取该行及全表内容
2018/08/31 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
浅析Vue.js中v-bind v-model的使用和区别
2018/12/04 Javascript
vue3.0 自适应不同分辨率电脑的操作
2021/02/06 Vue.js
Python3之文件读写操作的实例讲解
2018/01/23 Python
PyQt5每天必学之进度条效果
2018/04/19 Python
python绘制地震散点图
2019/06/18 Python
python实现文本进度条 程序进度条 加载进度条 单行刷新功能
2019/07/03 Python
详解python解压压缩包的五种方法
2019/07/05 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
python Opencv计算图像相似度过程解析
2019/12/03 Python
Python 3.8 新功能来一波(大部分人都不知道)
2020/03/11 Python
Python键鼠操作自动化库PyAutoGUI简介(小结)
2020/05/17 Python
美国校园市场:OCM
2017/06/08 全球购物
智能家居、吸尘器、滑板车、电动自行车网上购物:Geekmaxi
2021/01/18 全球购物
运动会通讯稿50字
2014/01/30 职场文书
化妆品活动策划方案
2014/05/23 职场文书
公共艺术专业自荐信
2014/09/01 职场文书
国家机关领导干部民主生活会对照检查材料思想汇报
2014/09/17 职场文书
公安机关党的群众路线教育实践活动剖析材料
2014/10/10 职场文书
项目经理助理岗位职责
2015/04/13 职场文书
活动费用申请报告
2015/05/15 职场文书
2016党校学习心得体会
2016/01/07 职场文书
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
Win11怎么添加用户?Win11添加用户账户的方法
2022/07/15 数码科技