检查stderr是否是bash中的管道

A B*_*A B 8 bash pipe stderr

我有一个bash脚本,提示用户输入'read'.如果stdout或stderr通过管道传输到终端以外的其他东西,我想压制这一步.那可能吗?

nos*_*nos 16

您可以使用命令test -t <filedescriptor no.>检查文件描述符是否为tty(附加到终端).如果是,您可以提示用户.如果不是,输出可能会在某处传输或消除.

if test -t 1  ; then
  echo stdout is a tty
fi
Run Code Online (Sandbox Code Playgroud)