actual_size="du -h $some_folder";
y='eval $actual_size`
max_size=2MB
if [[ y -lt $max_size ]]; then
echo `du -h $some_folder`
cp "$file" $some_folder` #$file points to some file
以上代码行有什么问题?我也试过
if [[$(stat -c%s $ some_folder)-lt $ max_size]];然后
任何帮助都会受到赞赏,Thnaks!
答案 0 :(得分:0)
为了在脚本中使用POSIX du
,有一个包装函数只能打印其倒数第二个字段的输出。这可以通过awk
完成,或者我是如何使用eval
扩展函数的倒数第二个参数:
#!/bin/sh
duprint()
{
if [ "$#" -gt 1 ]
then printf "%s" $( eval printf '$'$(( $# - 1 )))
fi
}
duwrap()
{
duprint $(du -s $@ 2>/dev/null)
}
duwrap "$@"
例如,如果您想要将多个目录的总大小复制到新的文件系统,这很有用:
./duwrapper /bin /etc /lib /boot
最后,可以使用他们的du
包装函数来比较目录大小:
if [ "$(duwrap /lib)" -gt "$(duwrap /bin)" ]
then echo "/lib is greater"
fi