我正在编写一个ssh进入主机的脚本,然后sudo给一个特权用户。由于我们的主机不允许sudo使用非tty会话,因此启用了伪tty。
pseudo-tty自动将所有STDERR输出重定向到STDOUT。这导致了项目的一连串问题,因为依赖库不能很好地处理STDERR输出。
是否可以撤消STDERR - > STDOUT输出重定向?换句话说,是否有可能全局要求将所有STDERR输出不发送到STDOUT?我知道可以在每个命令的基础上进行,但我正在寻找一种方法来做到这一点,只需要做一次 - 最好是当ssh到主机时。
答案 0 :(得分:0)
您不能“撤消”重定向,但可以在其他地方重定向。
一行中的shell脚本(例如,2>/dev/null
)中的“裸”重定向将为shell本身重定向stdout或stderr,因此shell将运行所有将来的命令。