【发布时间】:2021-11-09 23:26:10
【问题描述】:
而不是将>>放在每个命令的末尾,例如:
date >> newfile
ls >> newfile
# etc.
如何获取脚本的整个输出并将其放入文件而不需要多次附加,例如在以下代码中?
date
ls
echo $USER
# ">> new file"
【问题讨论】:
而不是将>>放在每个命令的末尾,例如:
date >> newfile
ls >> newfile
# etc.
如何获取脚本的整个输出并将其放入文件而不需要多次附加,例如在以下代码中?
date
ls
echo $USER
# ">> new file"
【问题讨论】:
我找到了解决办法。
我能够执行 script.sh 文件并将输出重定向到一个新文件。
示例:
./Script.sh > newfile.txt
【讨论】:
您可以使用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
【讨论】: