如何使用Unix shell执行此操作?
$ startRedirecting.sh
$ ls
abc.txt def.txt
$ pwd
/home/bob/demo
$ stopRedirecting.sh
$ cat /someDir/someOutput.txt
abc.txt def.txt
/home/bob/demo
如何编写startRedirecting.sh
以确保将以下每个命令的输出重定向到/someDir/someOutput.txt
Ruby / python脚本也可以。
答案 0 :(得分:2)
@ Celada的答案是最好的。拥有输出的日志文件而不记录产生输出的命令似乎很奇怪。
但是,您可以达到您的具体要求:
$ exec 3>&1
$ exec > >(tee output.log)
$ pwd
/home/jackman
$ whoami
jackman
$ exec >&3
$ cat output.log
/home/jackman
jackman
答案 1 :(得分:1)
听起来您不希望输出重定向,而是发送到终端和日志文件。您是否尝试过使用script?
答案 2 :(得分:1)
如果您只是想将一系列命令的输出重定向到文件,那么之后“关闭”重定向,您可以试试这个
$ exec >file
$ ls
$ pwd
$ exec >/dev/stdout
注意:
exec >file
:将STDOUT重定向到文件以获取后面的所有命令exec >/dev/stdout
:将STDOUT重定向回STDOUT以执行后面的所有命令