bash - 在failglob 触发后不执行行中的下一个命令

标签 bash gnu glob expansion

shopt -s failglob;
ls -l /non-existent/*; echo A;
echo B

只打印“B”(和“不匹配”错误)。

http://www.gnu.org/software/bash/manual/bashref.html#Filename-Expansion

表示导致扩展失败的命令没有被执行;但并不是说该行的其余部分被忽略。如何将扩展失败的影响限制为仅对实际命令的影响?
这是在 Gentoo-Linux 上的 GNU bash 版本 4.2.45(1)-release (i586-pc-linux-gnu) 下。

最佳答案

failglob实现似乎有问题,除了更正 bash 之外,您唯一的选择可能是避免在同一输入行上放置更多命令。

关于bash - 在failglob 触发后不执行行中的下一个命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16807950/

相关文章:

regex - 通配符的行为是否有所不同?

linux - Linux进程了解父级<>子级

c++ - 在 GNU c++ 编译器中运行一个包含多个源文件的程序

Linux:匹配一个表达式,然后删除整个相关 block

python - 是否有一种标准的 UNIX 方式可以明确地将 <filename> 和 <lineno> 写入 stderr?

python - 将打印语句写入文本文件

python - Pandas 添加文件创建日期作为变量

bash - 在您的 ~/.bashrc 文件中引用/etc/bashrc 是强制性的还是必需的?

linux - Bash linux,JPG 图像的小时、分钟和秒

linux - 使用 eval 的脚本启动的子进程不会在 ctrl+c 上中断