【问题标题】:How to write all output from a shell script to a single new file如何将 shell 脚本的所有输出写入单个新文件
【发布时间】:2021-11-09 23:26:10
【问题描述】:

而不是将>>放在每个命令的末尾,例如:

date >> newfile
ls >> newfile
# etc.

如何获取脚本的整个输出并将其放入文件而不需要多次附加,例如在以下代码中?

date
ls
echo $USER
# ">> new file"

【问题讨论】:

    标签: shell file append


    【解决方案1】:

    我找到了解决办法。

    我能够执行 script.sh 文件并将输出重定向到一个新文件。

    示例:

    ./Script.sh > newfile.txt

    【讨论】:

      【解决方案2】:

      您可以使用exec 重定向脚本的输出(以及脚本中执行的任何命令):

      #!/bin/sh
      
      exec >> newfile  # Direct all output to newfile
      date
      ls
      echo "$USER"
      

      或者你可以重定向一个命令块:

      #!/bin/sh
      
      {
          date
          ls
          echo "$USER"
      } >> newfile
      

      您还可以为某些命令重定向到文件并为其他命令恢复:

      #!/bin/sh
      
      exec 3>&1
      exec > newfile
      echo this output is written to newfile
      exec >&3
      echo this outupt goes to the original stdout
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-01-09
        • 2014-12-10
        • 1970-01-01
        • 2014-09-02
        • 2022-11-17
        • 1970-01-01
        相关资源
        最近更新 更多