在bash中检查stderr是否为管道

8
我有一个bash脚本,它使用'read'与用户交互输入。如果标准输出或标准错误被管道到非终端设备,我希望能够禁止这一步骤。这种情况是否可行?
1个回答

16

您可以使用命令test -t <文件描述符编号> 检查文件描述符是否是tty(附加到终端)。如果是,则可以提示用户。如果不是,则输出可能被管道或重定向到其他地方。

if test -t 1  ; then
  echo stdout is a tty
fi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接