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

面试题 相关文章推荐
Yahoo-PHP面试题2
Dec 06 面试题
main 函数执行以前,还会执行什么代码
Apr 17 面试题
北承题目(C++)
May 16 面试题
上海奥佳笔试题面试题
Nov 16 面试题
杭州龙健科技笔试题.net部分笔试题
Jan 24 面试题
杭州信雅达系统.NET工程师面试试题
Feb 08 面试题
新大陆软件面试题
Nov 24 面试题
C# Debug和Testing相关面试题
Oct 25 面试题
XMLHttpRequest对象在IE和Firefox中创建方式有没有不同
Mar 23 面试题
Python中pass语句的作用是什么
Jun 01 面试题
介绍一下mysql的日期和时间函数
Mar 28 面试题
Java面试题:Java类的Main方法如果是Private将会怎么样
Aug 18 面试题
什么是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
Discuz! 5.0.0论坛程序中加入一段js代码,让会员点击下载附件前自动弹出提示窗口
2007/04/18 PHP
关于PhpStorm设置点击编辑文件自动定位源文件的实现方式
2020/12/30 PHP
Exitjs获取DataView中图片文件名
2009/11/26 Javascript
javaScript让文本框内的最后一个文字的后面获得焦点实现代码
2013/01/06 Javascript
屏蔽相应键盘按钮操作
2014/03/10 Javascript
js中string转int把String类型转化成int类型
2014/08/13 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
js实现鼠标感应向下滑动隐藏菜单的方法
2015/02/20 Javascript
网络传输协议(http协议)
2016/11/18 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
基于js中document.cookie全面解析
2017/09/14 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
webpack 静态资源集中输出的方法示例
2018/11/09 Javascript
javascript防抖函数debounce详解
2019/06/11 Javascript
layui实现鼠标移动到单元格上显示数据的方法
2019/09/11 Javascript
vue实现简易图片左右旋转,上一张,下一张组件案例
2020/07/31 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
js canvas实现五子棋小游戏
2021/01/22 Javascript
[01:24]2014DOTA2 TI第二日 YYF表示这届谁赢都有可能
2014/07/11 DOTA
python实现文件名批量替换和内容替换
2014/03/20 Python
使用python实现语音文件的特征提取方法
2019/01/09 Python
Python3 io文本及原始流I/O工具用法详解
2020/03/23 Python
matplotlib.pyplot.matshow 矩阵可视化实例
2020/06/16 Python
Pandas的数据过滤实现
2021/01/15 Python
详解python的变量缓存机制
2021/01/24 Python
英国领先的独立酒精饮料零售商:DrinkSupermarket
2021/01/13 全球购物
高二物理教学反思
2014/02/08 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
村道德模范事迹材料
2014/08/28 职场文书
领导干部个人整改措施落实情况汇报
2014/10/29 职场文书
关于群众路线的心得体会
2014/11/05 职场文书
初中家长评语和期望
2014/12/26 职场文书
合作合同协议书
2016/03/21 职场文书
《和时间赛跑》读后感3篇
2019/12/16 职场文书
MySQL 使用索引扫描进行排序
2021/06/20 MySQL