gpt4 book ai didi

shell - &! 和有什么区别?和&|在 zsh 中?

转载 作者:行者123 更新时间:2023-12-01 07:36:39 24 4
gpt4 key购买 nike

在 zsh 的手册中,在 Jobs & Signals 部分,它说:

If a job is started with &| or &!, then that job is immediately disowned.



立即放弃工作的两种方式有什么区别吗?如果不是,那么为什么有两种不同但非常相似的方法呢?

最佳答案

有区别吗?

有趣的问题。我克隆了 git repo,开始查看它的添加位置,我发现将信息添加到手册中的提交是初始提交。这可能意味着 CVS 的更改并未通过保留提交完成,但是当我看到 2009 年的提交时,我没有进一步查看。

然后我查看了代码,答案就在那里。在 token 列表中有

...
"&|", /* AMPERBANG 30 */
...

当解析器接近&符号并看到“!”或“|”之后,它会自动返回 AMPERBANG 作为读取的 token 。从这一点来看,这两者没有区别。

我想我给你的答案是 在 ZSH 的当前版本中,这两者之间没有区别。

为什么有两个不同的标记具有相同的含义?

从代码上看,好像是键盘相关的东西。代码中有很多地方将这两个用于相同的含义(字面意思是 if (d == '!' || d == '|') 在那里出现多次。我发现唯一与键盘相关的原因是,显然,在瑞士键盘上,您可以使用 | 键入 AltGr+1在美国(和类似的)布局中,感叹号是由 Shift+1 产生的。我发现了其他原因,但由于其用户的受众范围很小,这极不可能。

关于shell - &! 和有什么区别?和&|在 zsh 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20473254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com