撤消全局 STDERR -> STDOUT 重定向
Undo global STDERR -> STDOUT redirection
我正在编写一个脚本,该脚本可以通过 ssh 连接到主机,然后通过 sudo 连接到特权用户。由于我们的主机不允许对非 tty 会话进行 sudo,因此启用了伪 tty。
pseudo-tty 自动将所有 STDERR 输出重定向到 STDOUT。这导致项目出现一系列问题,因为依赖库不能很好地处理 STDERR 输出。
是否可以撤消 STDERR -> STDOUT 输出重定向?换句话说,是否可以全局强制将所有 STDERR 输出 not 发送到 STDOUT?我知道可以在每个命令的基础上执行此操作,但我正在寻找一种只需执行一次的方法 - 理想情况下是在通过 ssh 连接到主机时。
您不能 "undo" 重定向,但您可以重定向到其他地方。
shell 脚本(例如,2>/dev/null
)中的 "bare" 重定向本身将重定向 shell 本身的 stdout 或 stderr,等等shell 运行的所有未来命令。
我正在编写一个脚本,该脚本可以通过 ssh 连接到主机,然后通过 sudo 连接到特权用户。由于我们的主机不允许对非 tty 会话进行 sudo,因此启用了伪 tty。
pseudo-tty 自动将所有 STDERR 输出重定向到 STDOUT。这导致项目出现一系列问题,因为依赖库不能很好地处理 STDERR 输出。
是否可以撤消 STDERR -> STDOUT 输出重定向?换句话说,是否可以全局强制将所有 STDERR 输出 not 发送到 STDOUT?我知道可以在每个命令的基础上执行此操作,但我正在寻找一种只需执行一次的方法 - 理想情况下是在通过 ssh 连接到主机时。
您不能 "undo" 重定向,但您可以重定向到其他地方。
shell 脚本(例如,2>/dev/null
)中的 "bare" 重定向本身将重定向 shell 本身的 stdout 或 stderr,等等shell 运行的所有未来命令。