zoukankan      html  css  js  c++  java
  • 永久重定向

    如果在脚本中重定向许多数据,那么重定向每个echo语句就不太方便了,这种情况下,可以使用exec命令通知shell脚本执行期间重定向特定的文件描述符

    文件名为: sh12.sh 

    #!/bin/bash
    # redirecting all output to a file
    exec 1>testout
    
    echo "This is a test of redirecting all output"
    echo "from a script to another file."
    echo "without haviing to redirect every individual line"

    exec命令启动一个新的shell,并将STDOUT文件描述重定向到一个文件,所有定向到STDOUT的脚本输出都将重定向到这个文件

    运行 sh sh12.sh ,你会发现没输出任何东西,然后查看testout文件, cat testout 

    输出:

    This is a test of redirecting all output
    from a script to another file.
    without haviing to redirect every individual line

    然后将错误信息和正确信息分别重定向不同的文件

    文件名 sh13.sh 

    #!/bin/bash
    # redirecting output to different locations
    
    exec 2>testerror
    
    echo "This is the start of the script"
    echo "now reidirecting all output to another location"
    
    exec 1>testout
    
    echo "This output should go to the testout testout file"
    echo "but this should go to the testerror file" >&2

    运行 sh sh13.sh 

    输出:

    This is the start of the script
    now reidirecting all output to another location

    查看testout文件的内容 cat testout 

    输出: This output should go to the testout testout file 

    查看testerror文件的内容 cat testrror 

    输出: but this should go to the testerror file 

  • 相关阅读:
    Eclipse MarketPlace 打不开,对话框闪退
    docker 创建容器的时候的坑
    win7 设置docker加速器
    postgres常用命令
    docker加速器配置
    docker 安装 postgresql
    Spring Cloud-服务的注册与发现之服务注册中心(Eureka Server)
    redis incr自增指定的无限期 key 删除问题
    redis读取自增时候指定的key问题
    docker 安装 redis
  • 原文地址:https://www.cnblogs.com/jacson/p/4791398.html
Copyright © 2011-2022 走看看