Linux内置命令之read

一、read的作用

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

[[email protected] scripts]# read Num
1
[[email protected] scripts]# echo $Num
1
[[email protected] scripts]# read Num
123
[[email protected] scripts]# echo $Num
123

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

[[email protected] scripts]# read Num Name Year
1 Arvin 2015
[[email protected] scripts]# echo $Num $Name $Year
1 Arvin 2015

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

[[email protected] scripts]# read Num Name Year
1 Arvin 2015 2014
[[email protected] scripts]# echo $Num
1
[[email protected] scripts]# echo $Name
Arvin
[[email protected] 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 << EOF
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."
    ;;
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)"    #通过每个循环分支的返回值
时间: 2024-08-03 19:20:09

Linux内置命令之read的相关文章

Linux内置命令和外部命令

1.Linux的命令可以分为内部命令和外部命令: 内置命令在系统启动时就调入内存,是常驻内存的,所以执行效率高. 而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存. 2.type -  Display information about command type   #查看当前系统的命令是否为内置命令和外部命令. 3.BASH_BUILTINS  alias, bg, bind, break, builtin, caller, cd, command, compgen, complete

Linux内置命令

主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1 bash内置命令 .:执行当前进程环境中的程序.同source. . file:dot命令从文件file中读取命令并执行. : 空操作,返回退出状态0. alias:显示和创建已有命令的别名. bg:把作业放到后台. bind:显示当前关键字与函数的绑定情况,或将关键字与readline函数或宏进行绑定. brea

小例子: 获取Linux内置命令的源代码(which + dpkg + apt-get source)

需求: 开发ssvm版本管理系统时,想起uname可以获得linux内核的版本信息,于是想下载uname命令的源代码参考看看 示例: $ which uname [查找uname命令的位置] /bin/uname $ dpkg -S /bin/uname [查找uname属于哪一个开发包中的代码] coreutils: /bin/uname $ apt-get source coreutils [下载相关的包的源source] [下载时,若发生如下问题,解决方法看下方] [sh: dpkg-so

Linux Bash内置命令大全详细介绍

转自:http://os.51cto.com/art/201006/207329.htm 主要Shell内置命令 Shell有很多内置在其源代码中的命令.这些命令是内置的,所以Shell不必到磁盘上搜索它们,执行速度因此加快.不同的Shell内置命令有所不同. A.2.1  bash内置命令 .:执行当前进程环境中的程序.同source. . file:dot命令从文件file中读取命令并执行. : 空操作,返回退出状态0. alias:显示和创建已有命令的别名. bg:把作业放到后台. bin

&lt;linux下内置命令和外部命令&gt;

Linux下内置命令和外部命令 1.linux的命令可以分为内部命令和外部命令: 内部命令在系统启动时就调入内存,是常驻内存的,所以执行效率高. 而外部命令是系统的软件功能,用户需要时才从硬盘中读入内存. enable既可以查看内部命令,同时也可以判断是否为内部命令. [[email protected] ~]# enable ls  //判断ls是否为内置命令-bash: enable: ls: not a shell builtin //它不是内部命令[[email protected] ~

Linux 基础知识:Bash Shell 内置命令

bash内置命令无须搜寻环境变量$PATH中提供的路径,直接可以执行,因此速度很快. 以下介绍几个简单.必备的命令用法. 1. help 用途:显示所有bash内置命令的列表,或某一个内置命令的用法. 用法: 4help 执行结果:显示所有内置命令的列表. 4help –s 内置命令 执行结果:显示内置命令的语法格式. 用例: help cd 显示cd命令的详细用法. help –s printf printf: printf [-v var] format [arguments] 显示prin

linux中shell内置命令和外置命令

shell内置命令 无法通过which或者whereis去查找命令的位置 例如cd,cp这些命令是shell解释器内置的命令 当shell内置命令传入shell解释器,shell解释器通过内核获取相关的信息或进行相关的操作 可以通过help [命令]查看内置命令的帮助文档 外置命令 /bin /usr/bin /sbin /usr/sbin 这些目录下的命令 可以通过which或者whereis去查找命令的位置 可以通过man [命令]查看命令的帮助文档 原文地址:https://www.cnb

如何查看shell内置命令?

在Linux的命令中提供了一个type命令,可用来查看系统命令是内置还是外部命令: 如图: 看到了吗小伙伴们?如果是出现builtin就是内置命令.就介绍这么多吧!有什么不明白请留言问我!

[笔记]内置命令与外部命令

内置命令(bulidin command):Bash程序本身提供,不需要到$PATH中查找,执行效率高外部命令:独立存在与文件系统中的可执行文件,文件需要存在于$PATH中        判断方法:type COMMAND 注意:Linux中严格区分大小写!!! 常见的内置命令:    help: 显示所有内置命令列表或单个内置命令的用法    type:判断命令的类型是内置还是外部命令    echo:显示,默认自动换行(加 -n 选项取消换行)    printf:依照格式显示参数内容,与C