小编Mad*_*ist的帖子

为什么 set -e 在带有括号 () 后跟 OR 列表 || 的子shell 中不起作用?

我最近遇到了一些这样的脚本:

( set -e ; do-stuff; do-more-stuff; ) || echo failed
Run Code Online (Sandbox Code Playgroud)

这对我来说看起来不错,但它不起作用!将set -e不适用,当你添加的||。没有它,它工作正常:

$ ( set -e; false; echo passed; ); echo $?
1
Run Code Online (Sandbox Code Playgroud)

但是,如果我添加||set -e则忽略:

$ ( set -e; false; echo passed; ) || echo failed
passed
Run Code Online (Sandbox Code Playgroud)

使用真正的、单独的 shell 可以按预期工作:

$ sh -c 'set -e; false; echo passed;' || echo failed
failed
Run Code Online (Sandbox Code Playgroud)

我已经在多个不同的 shell(bash、dash、ksh93)中尝试过这个,并且都以相同的方式运行,所以这不是一个错误。有人可以解释一下吗?

shell shell-script

42
推荐指数
2
解决办法
9427
查看次数

如何从邮件列表中获取 linux 内核补丁集?

我不订阅 linux-kernel 邮件列表,但我想获得一组几周前发布的补丁并将它们应用到我的内核中进行测试。我对修补、构建等非常熟悉。我的问题是,获得此补丁集副本的最佳方法是什么?它不适用于我所知道的任何 Git 存储库,它只是被发布到邮件列表中进行讨论。

我找到了许多存档 linux-kernel 邮件列表的站点,我可以在那里看到补丁集,但是这些站点都没有下载原始电子邮件的任何方法(我可以找到),因此我可以使用“git apply “或“补丁”或其他什么。只需从我的网络浏览器复制/粘贴内容,由于空格差异等,它似乎不会很成功。

人们如何管理这个?

patch git linux-kernel

22
推荐指数
3
解决办法
2万
查看次数

标签 统计

git ×1

linux-kernel ×1

patch ×1

shell ×1

shell-script ×1