大量のファイル転送が完了した時点を検出したいと思います。フォルダサイズを遅く検出してこれを行いたいと思います。
私がしたことは次のとおりです。
#!/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 が等しくない場合でもループが完了するため、Until ループは機能しません。私は初めて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'