【发布时间】:2014-06-22 14:54:32
【问题描述】:
这是我第一次制作 bash 脚本...
我正在尝试制作一个 bash 脚本,该脚本将删除目录中最旧的文件,直到所述目录低于特定大小。一旦目录小于 10000 字节,我希望 while 查找停止。 10000 仅用于测试;以后会增加的。
du 和 cut 将目录大小(以字节为单位)放入名为 check 的变量中 当文件大小大于 10000 字节时,应该运行 while 外观。 每次迭代都会删除目录中最旧的文件。
当我运行这个脚本时,最旧的文件被删除了,但即使 $check 小于 10000 也会无限重复。为什么这个脚本会无限运行?
check = $(du -sb /home/chris/Dropbox/VideoMonitor | cut -f1)
while [ $check -gt 10000 ]
check = $(du -sb /home/chris/Dropbox/VideoMonitor | cut -f1)
do
cd /home/chris/Dropbox/VideoMonitor
ls /home/chris/Dropbox/VideoMonitor -1tr | head -1 | xargs rm
done
这是脚本从目录中删除所有文件后得到的输出。
rm: missing operand
Try 'rm --help' for more information.
这会一遍又一遍地运行
【问题讨论】:
标签: bash while-loop infinite