zsh:使用flock执行if-then语句而不启动新进程。

zsh:使用flock执行if-then语句而不启动新进程。,zsh,flock,Zsh,Flock,我想在zsh脚本中执行类似的操作 flock my_lock_file if condition_a ; then do_b else do_c fi 不幸的是,我得到了一个解析错误。 我想在相同的过程中执行这个,所以 flock my_lock_file (

我想在zsh脚本中执行类似的操作

flock my_lock_file if condition_a ; 
                     then
                       do_b
                     else
                       do_c
                     fi
不幸的是,我得到了一个解析错误。 我想在相同的过程中执行这个,所以

flock my_lock_file (
                     if condition_a ; 
                     then
                       do_b
                     else
                       do_c
                     fi
                   )

这是不可能的。

您可以像这样打开
flock
的文件描述符:

integer myfd
exec {myfd}<>lockfile
flock $myfd

# do whatever you want
echo "with lock"
sleep 3

# close the file descriptor
exec {myfd}>&-
echo "release lock"
整数myfd
exec{myfd}锁文件
$myfd
#你想干什么就干什么
回音“带锁”
睡眠3
#关闭文件描述符
exec{myfd}>&-
回显“释放锁”