我在 Amazon Linux 上使用 bash 脚本。当我想将 stderr 和 stdout 重定向到文件时,我可以运行
./my_process.pl &>/tmp/out.txt
有没有办法可以将此输出重定向到文件并继续在控制台(在我的 shell 中)上查看它?这是怎么做到的?
答案1
是的,通过使用tee
:
/my_process.pl 2>&1 | tee /tmp/out.txt
请注意,用于&>file
将标准输出和标准错误重定向到文件是某些 shell 接受的 POSIX 标准的扩展。使用起来比较安全>file 2>&1
。在这种情况下,&>
根本无法使用,因为我们没有重定向到文件。
在 中bash
,也可以这样做
/my_process.pl |& tee /tmp/out.txt
这相当于上面的。在ksh93
,|&
表示某事完全地虽然不同。
答案2
使用命令,这会将和script
存储在名为 的文件中。stdin
stdout
typescript