美文网首页Shell
shell脚本编程 - 输入与输出

shell脚本编程 - 输入与输出

作者: 会飞的蜗牛07 | 来源:发表于2019-01-22 23:00 被阅读103次

    Shell语言是一种解释性语言,解释器一般默认/bin/bash。Shell的优点在于有一系列现成的工具可以调用,最迷人的地方在于管道和正则表达,可以使用很简洁的命令完成很多复杂的任务。脚本的使命在于代替人繁杂的重复劳动,所以程序员应该拥抱脚本。

    作为脚本语言,处理输入和输出也是Shell的基本功能。

    输入命令read

    read可以让Shell脚本获取外部输入,这里只讲一下笔者在开发过程中使用过的选项

    # -s 不回显输入的内容
    read -p "Input passwd:" -s Passwd
    
    # -t 5限时5s输入
    read -p "Input a number:" -t 5 Number
    

    输入分界符<<

    执行Shell脚本时通常会需要输入一些参数,但是有些脚本是自动化运行的,这就需要脚本能够自动的获取标准输入,这里就用到了输入分界符<<,例如

    # shell脚本
    #!/bin/sh
    read a
    read b
    echo $a $b
    
    # 执行命令
    ./shell <<EOF
    12
    23
    EOF
    
    # 运行结果
    12 23
    

    重定向

    shell的输出包括标准输出1和标准错误输出2,绝大部分时间开发人员远程登陆服务器进行操作,有时候对正确的输出并不是很敏感,为了减少打印数据的传输,可以重定向标准输出

    ./shell.sh > /dev/null # 等同于1>/dev/null
    

    这样打印出来的就只剩下我们关心的标准错误输出了。

    另外一种情况是我们需要将执行的全部结果重定向到某个文件,以方便后期检查

    ./shell.sh > log 2>&1 # 将标准错误输出重定向到标准输出中,一起重定向到log中
    

    同时输出到屏幕和文件

    需要借助于命令tee

    echo "hello" | tee file # 将hello同时输出到屏幕和文件file
    

    相关文章

      网友评论

        本文标题:shell脚本编程 - 输入与输出

        本文链接:https://www.haomeiwen.com/subject/pakdjqtx.html