相关疑难解决方法(0)

如何检查管道是否为空并对数据运行命令(如果不是)?

我在 bash 脚本中输入了一行,并想在将它提供给程序之前检查管道是否有数据。

搜索我找到了,test -t 0但在这里不起作用。总是返回假。那么如何确定管道有数据呢?

例子:

echo "string" | [ -t 0 ] && echo "empty" || echo "fill"
Run Code Online (Sandbox Code Playgroud)

输出: fill

echo "string" | tail -n+2 | [ -t 0 ] && echo "empty" || echo "fill"
Run Code Online (Sandbox Code Playgroud)

输出: fill

测试上述管道是否产生输出的标准/规范方式不同需要保留输入以将其传递给程序。这概括了如何将输出从一个进程传送到另一个进程,但仅在第一个进程有输出时才执行?专注于发送电子邮件。

shell bash pipe

73
推荐指数
7
解决办法
8万
查看次数

标签 统计

bash ×1

pipe ×1

shell ×1