bash - 使 bash 函数在空时失败

标签 bash shell

我想编写一个始终具有非空输出或失败的函数,但我缺少一个读取标准输入并将其传输到标准输出(如果非空或失败)的命令,如下所示:

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/

相关文章:

bash - 从 groovy 打印 $PATH - 字符被转义?

bash - 在 shell 中使用 seq 的数字序列的长度

bash - 如何使用 awk 打印正则表达式匹配项?

macos - 如何导出点分隔的环境变量

linux - 使用 sed 在特定行之后追加 HTML 代码块

shell - GNU/Linux 中两个文件(作为线集)的笛卡尔积

linux - 科学Linux : I need to take a shell script variable and use it to search in a awk script

python - 在 Google Colab Research Notebook 中读取 shell 脚本结果

bash - 如何通过双击使该 file.sh 可执行?

bash - 为什么带有后缀的基本名称与 find 一起使用时在子 shell 中不起作用?