我是 shell 脚本新手,这让我想知道为什么以下代码片段在 zsh 中不起作用,但在 bash 中却起作用?是否有相同片段的 zsh 等效项?我收到错误parse error near `200'
(
flock -e 200
echo "In critical section"
sleep 5
) 200>/tmp/blah.lockfile
echo "After critical section"
上面的代码片段来自src:https://stackoverflow.com/a/13551882/15087532
答案1
不要对 fd 进行硬编码。让 shell 为您获取它:
(
typeset fd=
exec {fd}> /tmp/blah.lockfile
flock -e $fd
echo "In critical section"
sleep 5
)
echo "After critical section"
这在 Bash 中也适用。