昨天我got some clarification圍繞使用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
在後面的子shell返回時運行。
所以我想知道最初的例子如何導致首先運行重定向。這是否與>
優先於子殼(list)
表示法有關?查看BASH手冊頁,我發現
運算符按優先順序進行評估。首先評估 括號中的子表達式,並可以覆蓋上面的優先規則 。
僅供參考,次外層和列表在語法上不同的東西 - 他們有不同的語法規則,儘管使用相同的字符(因而看起來和詞法分析器一樣)。 –