输出重定向复杂性

输出重定向复杂性

我试图在无法到达 X 服务器的情况下让脚本退出并出现错误:

xset -q &> /dev/null || { echo "显示服务器已损坏。正在中止。"; 1号出口; }

但是,我将xset -qspat 的输出输出到控制台。我不太清楚为什么。我的理解&>是它重定向了所有输出。

答案1

如果你想将 STDOUT 和 STDERR 重定向到 /dev/null xset -q,你应该这样做:

xset -q > /dev/null 2>&1 || { echo "The Display Server is BROKEN.  Aborting."; exit 1; }

using 的重定向&>仅在bash或内有效zsh。因此,您应该使用2>&1来让重定向在所有类似 Bourne 的 shell 中工作。

相关内容