我想编写一个始终具有非空输出或失败的函数,但我缺少一个读取标准输入并将其传输到标准输出(如果非空或失败)的命令,如下所示:
example() {
do_something_interesting_here $1 | cat_or_fails
}
这个想法是,如果命令 cat_or_fails
给出一个空输入,它将失败(因此函数失败),或者输入不做任何更改地输出(例如 cat
) .
但是我找不到任何能够实现该技巧的标准实用程序,或者可能我不确定如何使用这些工具。
最佳答案
遵循@William Pursell in the comment的想法看来 grep 可以使用类似的方法来实现这个目的:
example() {
do_something_interesting_here $1 | grep "[[:alnum:]]"
}
正如评论中提到的,它将消耗任何空行(或任何与给定的正则表达式不匹配的行)。
关于bash - 使 bash 函数在空时失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74522490/