zoukankan      html  css  js  c++  java
  • 读取文件和输入——read 脚本命令

    Linux之read命令使用 

    read命令:

    read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量

    1)read后面的变量var可以只有一个,也可以有多个,这时如果输入多个数据,则第一个数据给第一个变量,第二个数据给第二个变量,如果输入数据个数过多,则最后所有的值都给最后一个变量

    -p  read –p “提示语句”,则屏幕就会输出提示语句,如下图

    当变量个数和输入个数一样时:

    注意空格,要不会出错

    当变量个数和输入个数不一样时,即输入个数比变脸个数多,则多的都赋给最后一个变量:

    2)命令计数

    -n

    read –n 个数

    设置read命令计数输入的字符。当输入的字符数目达到预定数目时,自动退出,并将输入的数据赋值给变量

    看一下cc.sh脚本的内容:

    read –n 1的意思是只接受一个字符

    执行

    这里输入y后不用回车,自己就执行

    3)等待时间

    -t 时间

    read –t 时间

    使用read命令存在着潜在危险。脚本很可能会停下来一直等待用户的输入。如果无论是否输入数据脚本都必须继续执行,那么可以使用-t选项指定一个计时器。-t选项指定read命令等待输入的秒数。当计时满时,read命令返回一个非零退出状态;

    看一下cc.sh脚本的内容:

    执行cc.sh然后等待超过5s,发现自动退出了

    4)关闭回显

    -s

    read –s

    -s选项能够使read命令中输入的数据不显示在监视器上(实际上,数据是显示的,只是read命令将文本颜色设置成与背景相同的颜色),比如密码

    看一下cc.sh的脚本内容

    执行,看到输入密码的时候屏幕不显示

    6)从文本读取内容并且赋给变量

    6)读取输入
    #!/bin/bash
    echo -e "Please enter your test :"
    read TESTREAD last
    echo $TESTREAD
    echo $last
    结果显示输入内容。
    Please enter your test
    ni hao mingtian
    ni
    hao mingtian
    7 综合应用

    [root@NTP-SERVER shell]# ./4read.sh
    are your happy?
    happy
    happy is the right
    where do you work?beijing
    lguess beijing keeps you busy!
    enter your job title?worker
    I thought you might be an worker
    who are your best friends?li ming bo
    Say hi to ming
    [root@NTP-SERVER shell]# cat 4read.sh
    #!/bin/bash
    echo -e "are your happy?"
    read answer
    echo "$answer is the right"

    echo -n "where do you work?"
    read
    echo lguess $REPLY keeps you busy!

    read -p "enter your job title?"
    echo "I thought you might be an $REPLY"

    echo -n "who are your best friends?"
    read -a friends
    echo "Say hi to ${friends[1]}"

    可以发现echo -e会有回车,-n着没有

    read是按照空格进行分割的

  • 相关阅读:
    ie下table无法设置宽度的坑,解决方案:在td里面添加div把td宽度撑开即可。
    js simple drag.
    javascript事件捕获机制,dom tree
    WPF,布局,Menu,MenuItem,DockPanel,Grid,DockPanel.Dock='',ToolBar,Content,Image,Uri
    .net IntPtr ==interoperable pointer
    Why do I keep getting mixed tabs and spaces in a Visual Studio C# code window?[vs power tools issue transfered]
    vs nuget package control.
    Introduction to the WinPcap Networking Libraries
    读懂这一篇,集群节点不下线
    函数组合的 N 种模式
  • 原文地址:https://www.cnblogs.com/zhouhbing/p/4544522.html
Copyright © 2011-2022 走看看