小编Rob*_*nde的帖子

bash 中管道 (|) 和逻辑与 (&&) 的优先级

具有运算符优先级的经典场景,您有如下一行:

(cd ~/screenshots/ && ls screenshot* | head -n 5)
Run Code Online (Sandbox Code Playgroud)

你不知道它是否被解析((A && B) | C)(A && B | C)......

这里找到的几乎官方文档没有在列表中列出管道,所以我不能简单地检查表格。

此外,在 bash 中,(不仅用于更改操作顺序,还创建了一个 subshel​​l,所以我不是 100% 确定此行与上一行等效:

((cd ~/screenshots/ && ls screenshot*) | head -n 5)
Run Code Online (Sandbox Code Playgroud)

更一般地说,如何知道bash 行的AST?在 python 中,我有一个函数可以为我提供树,以便我可以轻松地仔细检查操作顺序。

bash

27
推荐指数
3
解决办法
9757
查看次数

标签 统计

bash ×1