我正在寻找一种解决方案(类似于下面的 bash 代码),除了 Solaris 上的 ksh 中的屏幕之外,还将 stdout 和 stderr 复制到一个文件中。
以下代码在 bash shell 中运行良好:
#!/usr/bin/bash
# Clear the logfile
>logfile.txt
# Redirect all script output to a logfile as well as their normal locations
exec > >(tee -a logfile.txt)
exec 2> >(tee -a logfile.txt >&2)
date
ls -l /non-existent/path
出于某种原因,这会在 Solaris 上引发语法错误。我认为这是因为我无法进行流程替换,并且我已经看到一些建议使用 的帖子mkfifo
,但我还没有想出一个可行的解决方案。
有谁知道除了默认位置之外可以将所有输出重定向到文件的方法吗?