BASH 脚本显示 IF 语法错误

BASH 脚本显示 IF 语法错误
for k in {794..800}
if [  -f    "vesta_$k.xyz"    ]
then
      do
         mkdir $k
         mv vesta_$k.xyz $k/vesta.xyz
         cd $k/
                 <<COMMANDS>>
         cd ..
      done
fi

PS Vesta_$k.xyz 是一个文件序列。问题出在 IF 命令的第一行。

答案1

if.. then.. fi应该完全在里面for.. do.. done,你不能越过它们

for        k in {794..800}
do
    if     [ -f "vesta_$k.xyz" ]
    then
           mkdir "$k"
           mv "vesta_$k.xyz" "$k/vesta.xyz"
           cd "$k" || exit 3
           echo '<<COMMANDS>>'
           cd - "$OLDPWD"
    fi
done

相关内容