我需要做一个shell脚本,它将一些参数放在目录中的文件上面。
我正在使用像
这样的东西for f in *.tmp
do
echo $f
sleep 5
done
我的问题是,在执行for期间,目录中的文件数可能会发生变化。并且for仅适用于首次执行时列出的文件。
任何想法? 非常感谢!
答案 0 :(得分:1)
您可以将文件存储在数组中
files=(*.tmp)
然后使用无限循环,并在满足条件时突破:
i=0
while true; do
do_something with "${files[i]}"
current_files=(*.tmp)
magic_handwaving -- some code to compare "files" with "current_files" \
that will append new files to "files"
(( ++i == ${#files[@]} )) && break
done
echo all files processed