bash - 检查stderr是否是bash中的管道

标签 bash pipe stderr

我有一个 bash 脚本提示用户输入“读取”。如果 stdout 或 stderr 通过管道传输到终端以外的其他东西,我想取消这一步。这可能吗?

最佳答案

您可以使用命令 test -t 检查文件描述符是否为 tty(附加到终端)。如果是,您可以提示用户。如果不是,则输出可能在某处通过管道传输或重定向。

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

关于bash - 检查stderr是否是bash中的管道,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1203290/

相关文章:

c - stderr 和 stdout - 未缓冲与缓冲?

git - 如何在 Git Bash for Windows 中设置别名?

node.js - Node.js 中的子进程 stdout 和 stderr 列大小

mysql - Bash脚本每行输出一个单词的MySQL mediumtext

bash - 打印用 grep 找到的正则表达式字符串

c - C UNIX 中的分支和管道

Go:按顺序接收 os.cmd stdout 和 stderr

bash - 代理 stdout/stderr 在 bash 中保持顺序

linux - 从终端创建多行文件时如何缩进?

bash - 等待 bash 脚本中的命令返回