【发布时间】:2014-06-02 23:02:35
【问题描述】:
我在使用文件描述符时遇到了一些麻烦。最终目标是能够使用flock for,因为我正在使用这个脚本来更新一个文件,它可以并行运行多次,我不想要任何冲突。该脚本从另一个脚本调用并传递变量
调用脚本:“call.sh”
#!/bin/ksh
scriptDir=/home/Scripts
###other stuff happens####
#Call to replacement script
. $scriptDir/replacement.sh var1 var2
替换脚本:“replacement.sh”
#!/bin/ksh
var1=$1
var2=$2
file=/myfile.doc
exec 300>>$file
flock -x 300
##Replacement logic###
当我在常规或调试 (ksh) 中运行 call.sh 时出现错误:
./call.sh: /replacement.sh[34]: 300: not found
起初我虽然可能文件描述符也需要在第一个脚本中,所以我补充说:
exec 300>>$file
到 call.sh,但返回的错误如下:
./call.sh[28]: 300 : not found
如果有人可以向我解释我缺少什么,那就太棒了!
提前致谢!
【问题讨论】:
标签: file shell ksh file-descriptor