在Unix下是否有办法可以运行命令并将其输出传递给另一个命令,但前提是输出非空?像
这样的东西command --some-arg | something_magical | mail -s "Don't send this e-mail if it would be empty" foo@bar.com
我可以为something_magical
添加一些简单的内容吗?
答案 0 :(得分:3)
我认为你可以在link中找到答案。
无论如何,你可以把这个功能放在神奇的部分:
pipe_if_not_empty () {
head=$(dd bs=1 count=1 2>/dev/null; echo a)
head=${head%a}
if [ "x$head" != x"" ]; then
{ printf %s "$head"; cat; } | "$@"
fi
}
答案 1 :(得分:0)
您可以使用
测试文件为零或非零if [ -s file ]
使用
查看man test