我想执行一组操作(x y z
),只要我在/media/z
挂载的文件系统上至少有200MB可用空间。
我该怎么做?
我试过像
这样的东西while (`df | grep /media/z | awk '{print $4}'` > 204800); do x; y; z; done;
但我猜我的while
语法错误。
答案 0 :(得分:3)
( )
在子shell中执行命令。如果要测试条件,则必须使用 test 命令:[ ]
。
while [ `df | grep /media/z | awk '{print $4}'` -gt 204800 ]; do
x; y; z; sleep 5;
done;
答案 1 :(得分:2)
如果您使用bash使用[[]]来使用内部测试,它会更快并为您提供标准操作符:
while (( $(df /media/z | awk 'NR==2{print $4}') > 204800 )); do
x; y; z
done