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

面试题 相关文章推荐
什么造成了Java里面的异常
Apr 24 面试题
C语言基础笔试题
Apr 27 面试题
定义一结构体变量,用其表示点坐标,并输入两点坐标,求两点之间的距离
Aug 17 面试题
.net笔试题
Mar 03 面试题
如何为DataGridView添加一个定制的Column Type
Jan 21 面试题
什么是动态端口(Dynamic Ports)?动态端口的范围是多少?
Dec 12 面试题
四川internet信息高速公路(C#)笔试题
Feb 29 面试题
国外软件测试工程师面试题
Dec 09 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
初始化了一个没有run()方法的线程类,是否会出错?
Mar 27 面试题
介绍一下Java中的static关键字
May 12 面试题
什么是继承
Dec 07 面试题
什么是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
一些常用的php函数
2006/12/06 PHP
php实现的网络相册图片防盗链完美破解方法
2015/07/01 PHP
PHP支付系统设计与典型案例分享
2016/08/02 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
Jquery中dialog属性小记
2010/09/03 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
JavaScript中window、doucment、body的解释
2013/08/14 Javascript
JavaScript中Math对象方法使用概述
2014/01/02 Javascript
IE下Ajax缓存问题的快速解决方法(get方式)
2014/01/09 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
js实现网页图片延时加载 提升网页打开速度
2016/01/26 Javascript
jQuery Select下拉框操作小结(推荐)
2016/07/22 Javascript
Bootstrop实现多级下拉菜单功能
2016/11/24 Javascript
js document.getElementsByClassName的使用介绍与自定义函数
2016/11/25 Javascript
详解从Node.js的child_process模块来学习父子进程之间的通信
2017/03/27 Javascript
详解vue+webpack+express中间件接口使用
2018/07/17 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
Python中的descriptor描述器简明使用指南
2016/06/02 Python
基于Python实现的ID3决策树功能示例
2018/01/02 Python
python3 判断列表是一个空列表的方法
2018/05/04 Python
python实现共轭梯度法
2019/07/03 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
Python 元组操作总结
2019/09/18 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
Python如何实现邮件功能
2020/05/27 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
乐高瑞士官方商店:LEGO CH
2020/08/16 全球购物
期中考试反思800字
2014/05/01 职场文书
2015公司年度工作总结
2015/05/14 职场文书
学习焦裕禄先进事迹心得体会
2016/01/23 职场文书
Java数组与堆栈相关知识总结
2021/06/29 Java/Android
Python批量解压&压缩文件夹的示例代码
2022/04/04 Python
原生JS实现分页
2022/04/19 Javascript
使用pd.merge表连接出现多余行的问题解决
2022/06/16 Python