仅在查找特定文件时运行下一个命令

时间:2014-04-11 16:36:09

标签: unix tcl

我想在每5秒后检查一个文件是否存在。如果确实存在,则运行下一个命令。以下是我现在正在做的事情,它不起作用:

while {![file exist file.tcl]} {  
    after 5000  
}  
run_this_command  

请提出建议。 感谢

2 个答案:

答案 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