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