bash - 了解 Bash List 语法定义
问题描述
Man bash 声明 aList
是
一个或多个管道的序列,由运算符
;
、&
、&&
或中的一个分隔,并且可选地由、或||
中的一个终止。;
&
<newline>
在这些列表运算符中,
&&
and||
具有相同的优先级,其次是;
and&
,它们具有相同的优先级。一个或多个换行符的序列可能会出现在列表中,而不是用分号来分隔命令。
因此,基本上任何列出的控制运算符都可以分离由 List 组成的管道。此外;
,&
还可以在列表中单独使用管道,它们也可以终止整个列表。
据我了解,这个 bash 脚本属于 List 的定义:
pipeline1 && pipeline2; pipeline3
我对么?我有一个&&
和一个;
将我的三个管道分开。
如果是,为什么它是一个列表而不是两个列表?
我不明白为什么说 ,;
对于&
分离管道和终止它们是有效的?
在我的示例中,是否;
分隔列表管道或终止第一个管道并启动第二个管道?
解决方案
考虑如下语句:
if pipeline1 && pipeline2; pipeline3; then echo "foo"; fi
第一个;
分隔列表中的管道,第二个终止列表。
这是一个列表,因为 的语法if
是:
如果
list
; 然后list
; [ 艾利夫list
; 然后list
; ] ... [否则list
;] 菲
推荐阅读
- java - Jxmaps 如何将 ContextMenu 添加到标记?
- sql - 使用table2,table3 on(多个条件)合并到Table1?缺少语法
- ruby - 如何在组合框文本中设置滚动
- python - 将 numpy 数组图像输入 pytorch 神经网络
- python - Pyinstaller 3.4 无法在带有 Python 2.7 的 Windows 10 上运行
- maven - 使用 frontend-maven-plugin 从 maven 运行 jest
- gitlab - 如何获得我写的 gitlab 评论(在合并请求中)的链接?
- javascript - 使用本地存储在每个新会话上重置变量
- html - 固定 div 位于另一个 div 之上
- r - R:如何在字符串中间添加一个零