昨天我得到了一些关于使用的澄清flock
,一些简单的概念对我来说变得清晰了。
我现在的问题是关于子壳。看看这个块
(
flock -s 200
# ... commands executed under lock ...
) 200>/var/lock/mylockfile
我的理解是以前200>/var/lock/mylockfile
运行过 flock -s 200
,但是如果我尝试这样的事情
( echo This is a sub-shell ) command
我从 BASH 收到一个错误
-bash: syntax error near unexpected token `command'
引入分号
( echo This is a sub-shell ); command
修复错误,但导致子外壳返回后command
运行。
所以我想知道初始示例如何导致重定向首先运行。这与>
over sub-shell(list)
符号的优先级有关吗?查看 BASH 联机帮助页,我发现
运算符按优先级顺序计算。括号中的子表达式首先被评估,并且可以覆盖上面的优先规则。