很抱歉使线程亡灵,但是每当您通过全局遍历文件时,很好的做法是避免出现这样的情况:GLOB不匹配(这使得循环变量扩展到(不匹配的)GLOB模式字符串本身)。例如:for filename in Data/*.txt; do
[ -e "$filename" ] || continue
# ... rest of the loop bodydone参考资料:撞击陷阱
for file in Data/*.txtdo
for ((i = 0; i < 3; i++))
do
name=${file##*/}
base=${name%.txt}
./MyProgram.exe "$file" Logs/"${base}_Log$i.txt"
donedone这个name=${file##*/}替代(壳参数展开)直到最后一次移除前面的路径名。/.这个base=${name%.txt}替换移除尾随.txt..如果扩展可以改变的话,就会更加棘手。