0

如何用 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 脚本也可以。

4

3 回答 3

2

@Celada 的回答是最好的。有一个输出日志文件而不记录产生输出的命令似乎很奇怪。

但是,您可以实现您的特定要求:

$ exec 3>&1
$ exec > >(tee output.log)
$ pwd
/home/jackman
$ whoami
jackman
$ exec >&3
$ cat output.log 
/home/jackman
jackman
于 2013-06-23T02:18:25.247 回答
1

听起来您不希望输出重定向,而是发送到您的终端和日志文件。您是否尝试过简单地使用脚本

于 2013-06-23T00:48:23.653 回答
1

如果你只是想将一系列命令的输出重定向到一个文件,然后“关闭”重定向,你可以试试这个

$ exec >file
$ ls
$ pwd
$ exec >/dev/stdout

笔记:

  • exec >file: 将 STDOUT 重定向到后面的所有命令的文件
  • exec >/dev/stdout: 将 STDOUT 重定向回 STDOUT 以获取所有随后的命令
于 2013-06-23T01:43:09.633 回答