首页 > 解决方案 > 了解 Bash List 语法定义

问题描述

Man bash 声明 aList

一个或多个管道的序列,由运算符;&&&或中的一个分隔,并且可选地由、或||中的一个终止。;&<newline>

在这些列表运算符中,&&and||具有相同的优先级,其次是;and &,它们具有相同的优先级。

一个或多个换行符的序列可能会出现在列表中,而不是用分号来分隔命令。

因此,基本上任何列出的控制运算符都可以分离由 List 组成的管道。此外;&还可以在列表中单独使用管道,它们也可以终止整个列表。

据我了解,这个 bash 脚本属于 List 的定义:

pipeline1 && pipeline2; pipeline3

我对么?我有一个&&和一个;将我的三个管道分开。

如果是,为什么它是一个列表而不是两个列表?

我不明白为什么说 ,;对于&分离管道和终止它们是有效的?

在我的示例中,是否;分隔列表管道或终止第一个管道并启动第二个管道?

标签: bashshellsyntax

解决方案


考虑如下语句:

if pipeline1 && pipeline2; pipeline3; then echo "foo"; fi

第一个;分隔列表中的管道,第二个终止列表。

这是一个列表,因为 的语法if是:

如果list; 然后list; [ 艾利夫list; 然后list; ] ... [否则list;] 菲


推荐阅读