在Bash中,我试图使函数getLock与不同的锁名称一起使用.
function getLock
{
getLock_FILE="${1}"
getLock_OP="${2}"
case "${getLock_OP}" in
"LOCK_UN")
flock -u "${getLock_FILE}"
rm -fr "${getLock_FILE}"
;;
"LOCK_EX")
flock -x "${getLock_FILE}"
esac
}
Run Code Online (Sandbox Code Playgroud)
但是弗洛克说 flock: bad number: myfilelock
我怎样才能锁定文件,并在需要时释放它,而不必在flock中执行命令?
它是这样使用的:
getLock myfilelock LOCK_EX
somecommands
........
getLock myfilelock LOCK_UN
Run Code Online (Sandbox Code Playgroud) 如何确定Bash中当前是否正在使用文件描述符?例如,如果我有一个读取,写入和关闭fd 3的脚本,例如
exec 3< <(some command here)
...
cat <&3
exec 3>&-
Run Code Online (Sandbox Code Playgroud)
什么是确保我不干扰脚本运行之前可能设置的描述符的其他目的的最佳方法?我需要将整个脚本放在子shell中吗?