一、read的作用

read能将用户通过键盘输入的字符串保存在后面所跟的变量里面

[root@TESTHOST scripts]# read Num

1

[root@TESTHOST scripts]# echo $Num

1

[root@TESTHOST scripts]# read Num

123

[root@TESTHOST scripts]# echo $Num

123

通过read可以输入任何信息给脚本,也可以从命令行读入多个值传递给变量

[root@TESTHOST scripts]# read Num Name Year

1 Arvin 2015

[root@TESTHOST scripts]# echo $Num $Name $Year

1 Arvin 2015

----------------------------------------------

[root@TESTHOST scripts]# read Num Name Year

1 Arvin 2015 2014

[root@TESTHOST scripts]# echo $Num

1

[root@TESTHOST scripts]# echo $Name

Arvin

[root@TESTHOST scripts]# echo $Year

2015 2014    #这里把最后两个字符传递给了变量Year

二、read常用参数

-p():曾加提示信息    # 另echo -n 显示信息后,不换行

-t:指定超时时间,在指定的时间内read命令未交互,则超时退出

三、示例及练习

示例1:

#!/bin/bash

#

read –p “Input a character:”Char

case $Char in[0-9])

echo “A digit.” ;;

[a-z])

echo “A lower.” ;;

[A-Z])

echo “A upper.” ;;

[[:punct:]])

echo “A punction.” ;;

*)

echo “A special char.” ;;

esac

示例2:

#!/bin/bash

#

read -p "Do you agree [yes|no]?: " YesNo

case $YesNo in

y|Y|[Yy]es)

echo "Agreed, proceed." ;;

n|N|[nN]o)

echo "Disagreed, can't proceed." ;;

*)

echo "Invalid input." ;;

esac

例子3:写一个脚本

1、显示如下菜单给用户:

m|M) show memory usages;

d|D) show disk usages;

q|Q) quit

2、如果用户选择了第一项,则显示内存使用信息;

如果选择了第二项,则显示磁盘挂载及使用相关信息;

如果是第三项,退出,并显示选择退出;

其它任何内容,均说明错误选项;

#!/bin/bash

#

cat <

m|M) show memory usages;

d|D) show disk usages;

q|Q) quit

EOF

read -t 20 -p "Press a choice:" Key

if [ -z $Key ]; then

echo "No choice,quit."

Key=q

exit 3

fi

case $Key in

m|M)

free -m

;;

d|D)

du -lh

;;

q|Q)

echo "Quit."

exit 5

;;

*)

echo "Invalid input."

exit 7

;;

esac

练习1:写一个脚本,能接受参数gzip、bzip2或xz,而后能将/etc/目录归档备份至/backup目录,并以参数指定的形式压缩存放;文件名称包含脚本执行时刻的时间

#!/bin/bash

# Date: 2015-04-13

# Description:

# Version: 1.0

if [ ! -e /backup ];then    #这里可以用[ -d /backup ] || mkdir /backup 替代

mkdir /backup

fi

read -t 20 -p "Press a command{gzip|bzip2|xz}:" Command    #read,20秒超时,给command赋值

Command=$1

if [ -z $1 ]; then    #如果脚本给定的是空值,则默认输入gzip

Command=gzip

fi

case $Command in

gzip)

tar czfP /backup/backupfile-`date +%F-%H-%M-%S`.tar.gz /etc/

Ret=$?

;;

bzip2)

tar cjfP /backup/backupfile-`date +%F-%H-%M-%S`.tar.bz2 /etc/

Ret=$?

;;

xz)

tar cJfP /backup/backupfile-`date +%F-%H-%M-%S`.tar.xz /etc/

Ret=$?

;;

*)

echo "Usage:`basename $0`{gzip | bzip2 | xz }."

exit 5

;;

esac

[ $Ret -eq 0 ] && echo "Backup etc successfully.($Command)"    #每一个分支都有将执行返回值赋值给Ret,当Ret为0时,即知道变量Command是gzip、bzip2、xz中哪一个

linux read01,Linux内置命令之read相关推荐

  1. Linux查看内置命令和非内置命令帮助的几种方法(man、help、info)

    内置命令就是shell内核自带的,因为shell当中自己要进行管理,那么就需要一些命令进行管理,不同的shell肯定有不同的shell命令,我们用type命令就可以看到其的类型,内置shell命令其实 ...

  2. 14.Linux rpm,brew软件安装包命令,zsh和bash,内置命令和外部命令,ps命令,top命令解析,swp,为什么cpu利用率很低,负载却很高?

    解释一下rpm, opt,opt-get, brew,brewhome rpm,apt,apt-get,brew,和homebrew都是与软件包管理有关的术语.它们分别用于不同的操作系统. rpm是一 ...

  3. linux sh 帮助,技术|获取有关 Linux shell 内置命令的帮助

    Linux 内置命令属于用户 shell 的一部分,本文将告诉你如何识别它们并获取使用它们的帮助. Linux 内置命令是内置于 shell 中的命令,很像内置于墙中的书架.与标准 Linux 命令存 ...

  4. linux卸载摄像头,如何在 Linux 中禁用内置摄像头

    如果你想知道如何禁用笔记本电脑或台式机中的网络摄像头,那么你很幸运.这个简短的教程将告诉你如何做.请继续阅读. 我在 Arch Linux 和 Ubuntu 上测试了这个指南.它的工作原理如下所述.我 ...

  5. fooview辅助功能 shell_列出所有Bash Shell内置命令的方法示例

    前言 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. 内置命令包含在 bash shell 本身里面 ...

  6. 查看命令为内置命令还是外部命令

    查看命令为内置命令还是外部命令---type        有木有 ? 有的用户在用一般用户身份执行ifconfig eth0  会出现"-bash: ifconfig :command n ...

  7. Shell脚本——内置命令

    一.内置命令 所谓 Shell 内置命令,就是由 Bash 自身提供的命令,而不是文件系统中的某个可执行文件. 例如,用于进入或者切换目录的 cd 命令,虽然我们一直在使用它,但如果不加以注意很难意识 ...

  8. mysql 代替分号_除了使用分号(;)终止符之外,还有其他可执行MySQL查询的内置命令吗?...

    借助以下内置命令,即使不使用分号(;)终止符,MySQL也可以执行查询. 自我 我们可以通过使用\ G选项来使用此命令.这意味着将当前语句发送到要执行的服务器,并以垂直格式显示结果.当我们使用\ G并 ...

  9. awk内置命令RS,ORS,FS,OFS的使用

    Awk内置命令RS, ORS, FS, OFS FS 指定字段列分隔符 OFS 指定输出字段列分隔符 RS指定行分隔符 默认分隔符为\n ORS指定输出行分隔符 FS指定列分隔符,相当于参数-F.OF ...

  10. linux-help命令,查询shell内置命令帮助文档

    命令:help 描述:help + 命令(shell内置命令).可以查看shell内置命令的帮助文档. 范例:help if

最新文章

  1. 计算机知识新闻稿,文科计算机大赛新闻稿
  2. 决策树之前要不要处理缺失值_不要使用这样的决策树
  3. c语言中不能编译,为什么`int;`可以在C语言中很好地编译,而在C ++中却不能?
  4. VCAP5-DCA – What’s new?
  5. MFC获取当前应用程序实例句柄的三种方法
  6. linux下order by 报出ORDER BY clause is not in SELECT list
  7. hex2bin 64bit
  8. bbsmax mysql_Mac命令行启动MySQL
  9. FFmpeg教程(超级详细版)
  10. 【opencv之Roberts算子】
  11. c语言 公交卡一卡通系统,公共交通一卡通系统
  12. ZYF货币系统F917
  13. ElasticSearch设置字段的keyword属性
  14. 百度开发者大会高层讲稿
  15. Unity Json存档读档操作
  16. 2015年imac一体机安装双系统问题及解决技巧
  17. 正点原子IMX6UL底板硬件设计指南
  18. 11种典型的时间序列回归预测方法大集合——附代码
  19. Nvidia Jetson Agx Xavier 在Ros中调用GMSL2相机
  20. 《测绘综合能力》——大地测量

热门文章

  1. [外文理解] DDD创始人Eric Vans:要实现DDD原始意图,必须CQRS+Event Sourcing架构。
  2. javaWeb中的Model1和Model2
  3. Hudson:持续集成工具的安装、使用
  4. 数据加密和OpenSSL
  5. CCS5连接调试C64X系列DSP核
  6. 组合模式测试组合模式(Composite Pattern)
  7. 《编写可读代码的艺术》读书笔记
  8. 把一个中文日期时间格式字符串转为日期时间
  9. Oracle RAC安装过程中所使用的一些配置
  10. hdu 5419(数学期望)