我想检测大量文件的传输何时完成。我想通过延迟检测文件夹的大小来完成此任务。
以下是我所做的,
#!/bin/bash
firstSize= du -s /Users/test/Desktop/folder | cut -f1
sleep 3
newSize= du -s /Users/test/Desktop/folder | cut -f1
until [ $firstSize -eq $newSize ]
do
firstSize=$newSize
sleep 3
newSize= du -s /Users/test/Desktop/folder | cut -f1
done
echo 'Done'
直到循环不起作用,因为即使 firstSize 和 newSize 不相等,循环也会完成。我不熟悉编写 Bash 脚本,所以我只是犯了错误。这个循环是从我为相同目的编写的 applescript 移植过来的,但我需要更可靠的东西。
答案1
你搞乱了命令语法。该脚本应如下所示:
#!/bin/sh -
firstSize=$(du -s /Users/test/Desktop/folder | cut -f1)
until
sleep 3
newSize=$(du -s /Users/test/Desktop/folder | cut -f1)
[ "$firstSize" -eq "$newSize" ]
do
firstSize=$newSize
done
echo 'Done'