我已经在bash脚本中通过管道传递了一条线,并希望在将其提供给程序之前检查管道是否具有数据。
我发现有关搜索,test -t 0
但在这里不起作用。始终返回false。那么如何确保管道中有数据呢?
例:
echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
输出: fill
echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
输出: fill
有别于标准/规范方式来测试上述管道是否产生了输出?输入需要保留,以将其传递给程序。这概括了如何将输出从一个进程传递到另一个进程,但仅在第一个进程具有输出时才执行?重点是发送电子邮件。