我想在每5秒后检查一个文件是否存在。如果确实存在,则运行下一个命令。以下是我现在正在做的事情,它不起作用:
while {![file exist file.tcl]} {
after 5000
}
run_this_command
请提出建议。 感谢
答案 0 :(得分:1)
如果您正在执行 nothing 其他操作,您的代码将会正常运行。 如果您处于事件处理环境中(例如,弹出GUI或提供TCP连接),则需要异步执行检查。如果我们使用一个小帮手程序
,我们可以轻松完成proc pollUntilExists {filename delay script} {
if {[file exists $filename]} {
uplevel #0 $script
} else {
# Call ourself again after $delay microseconds
after $delay [info level 0]
}
}
pollUntilExists file.tcl 5000 {
run_this_command
}
答案 1 :(得分:0)
试试这个: 在生成文件的路径上。
while [ 1 -eq 1 ]; do
fileF=`ls -l file_name`
fileN=`echo $fileF`
if [ $fileN == "file_name" ]; then
<your_command>
else
sleep 5
fi
done