我正在尝试编写一个简单的脚本,如果缺少一个,它将移动目录中顺序文件列表中的文件。例如,如果我有一个包含名为“1”、“2”、“3”、“5”等文件的目录,我想将“3”移动到“4”,将“3”移动到“2”等.我有下面的代码。Upper 和 Lower 对应于我要转换的值。使用上面的示例,LOWER 为 1,UPPER 为 5。
for z in $( eval echo {$UPPER..$LOWER}) ; do
checkfile $DIRNAME $z #Returns -1 on file missing
if [[ $? -ne 0 ]]; then
echo "Found bad match"
for y in $( eval echo {$z..$LOWER}) ; do
n=$(($y - 1))
echo "$y $n"
mv "$n" "$y"
done
exit 0
fi
done
我收到以下输出
Found bad match
18 17
mv: cannot stat `17': No such file or directory
17 16
mv: cannot stat `16': No such file or directory
16 15
mv: cannot stat `15': No such file or directory
15 14
mv: cannot stat `14': No such file or directory
我不太清楚为什么 mv 抱怨。任何想法将不胜感激!