2014-11-22 135 views

回答

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; } | "[email protected]" 
    fi 
} 
0

可以与

if [ -s file ] 

是零或非零测试文件检查出来使用

man test 
+0

我会如何使用它来将某些东西传递给另一个命令,但只有在某些东西不是空的时候才可以? – kuzzooroo 2014-11-23 02:28:57

+0

我假设你没有管道,但重定向到一个文件。然后你可以评估这个文件。这听起来是一种简单而有效的方法,尽管其他方法也是可能的(经常)。您也可以将一个命令放入一个变量中,并检查该变量是否为空。这是另一种方法,即使你不需要变量中的输出。 – tvCa 2014-11-23 12:46:20