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

时间:2013-10-22 07:44:52

标签: zsh flock

我想在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
                   )

是不可能的。

1 个答案:

答案 0 :(得分:0)

您可以像这样打开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"