我正在研究一个脚本,该脚本将SSH纳入主机,然后将Sudo纳入特权用户。由于我们的主机不允许sudo具有非tty会话,因此可以启用伪tty。
伪-TTY自动将所有STDERR输出重定向到Stdout。这引起了该项目的一系列问题,因为依赖的库不能很好地处理STDERR。
是否可以撤消stderr-> stdout输出重定向?换句话说,是否有可能在全球范围内要求将所有stderr输出不是发送到STDOUT?我知道可以按命令进行操作,但是我正在寻找一种只能完成一次的方法 - 理想情况下是在主机上。
您不能"撤消"重定向,但是您可以在其他地方重定向。
shell脚本中的"裸机"重定向(例如,2>/dev/null
)本身会重定向stdout或stderr,以便为shell本身,因此对于所有将来的命令,shell运行。