如何类似flock那样,但是不要求执行命令?

sh/bash/dash/ksh/zsh等Shell脚本
回复
科学之子
帖子: 2260
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 842 次
接收感谢: 30 次

如何类似flock那样,但是不要求执行命令?

#1

帖子 科学之子 » 2016-10-22 22:35

如何类似flock那样,但是不要求执行命令?

代码: 全选

#!/bin/bash
echo $0
flock $0 sh -c ''
bc
我试图这么写,但flock运行空命令后就直接释放了锁
此时如果此脚本再次运行,就不受到锁的保护
头像
自由建客
论坛版主
帖子: 13437
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: 如何类似flock那样,但是不要求执行命令?

#2

帖子 自由建客 » 2016-10-22 22:39

代码: 全选

exec 4>"$LOCK_FILE"
flock -e 4  # 这里若是不能获取锁就会一直阻塞
...  # 做你想做的
flock -u 4
这些用户感谢了作者 自由建客 于这个帖子:
科学之子 (2016-10-22 22:59)
评价: 3.7%
头像
自由建客
论坛版主
帖子: 13437
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: 如何类似flock那样,但是不要求执行命令?

#3

帖子 自由建客 » 2016-10-22 22:43

叫你不看手册,我不懂洋文都看了
科学之子
帖子: 2260
注册时间: 2013-05-26 6:58
系统: Debian 9
送出感谢: 842 次
接收感谢: 30 次

Re: 如何类似flock那样,但是不要求执行命令?

#4

帖子 科学之子 » 2016-10-23 1:45

自由建客 写了:叫你不看手册,我不懂洋文都看了
弱问看的是什么手册能得出exec这种用法?
这次我发帖前真看了手册,但当时没看懂那个number的意思 :Cry
看得是"man flock"
没看出exec这种用法
头像
自由建客
论坛版主
帖子: 13437
注册时间: 2008-07-30 23:21
系统: Debian stable AMD64
来自: freebuilder@yeah.net
送出感谢: 12 次
接收感谢: 112 次
联系:

Re: 如何类似flock那样,但是不要求执行命令?

#5

帖子 自由建客 » 2016-10-23 9:33

科学之子 写了:
自由建客 写了:叫你不看手册,我不懂洋文都看了
弱问看的是什么手册能得出exec这种用法?
这次我发帖前真看了手册,但当时没看懂那个number的意思 :Cry
看得是"man flock"
没看出exec这种用法
number 是文件描述符,man flock 有说明。
exec 打开文件,这是 bash 的基本功。 :em06
这些用户感谢了作者 自由建客 于这个帖子:
科学之子 (2016-10-23 12:57)
评价: 3.7%
回复

回到 “Shell脚本”