Update disk space checks to use POSIX compliant df

不加-P参数时,在Filesystem名称超过20字符时会换行,导致脚本解析出错
This commit is contained in:
LeoHLee
2026-10-05 03:26:53 +08:00
committed by GitHub
parent de1d9e20f7
commit 3f3eb9d231
+3 -3
View File
@@ -6,10 +6,10 @@
#$1=裸二进制字节数。仅当$TMPDIR在内存(tmpfs)时裸存才省RAM; #$1=裸二进制字节数。仅当$TMPDIR在内存(tmpfs)时裸存才省RAM;
#再按$BINDIR文件系统估算裸二进制落盘体积(透明压缩fs约2:1),需留有余量($raw_margin,默认8M) #再按$BINDIR文件系统估算裸二进制落盘体积(透明压缩fs约2:1),需留有余量($raw_margin,默认8M)
store_raw_worth_it(){ store_raw_worth_it(){
case "$(df -T "$TMPDIR" 2>/dev/null | awk 'END{print $2}')" in tmpfs|ramfs) ;; *) return 1 ;; esac case "$(df -P -T "$TMPDIR" 2>/dev/null | awk 'END{print $2}')" in tmpfs|ramfs) ;; *) return 1 ;; esac
rom_free=$(df -k "$BINDIR" 2>/dev/null | awk 'END{print $4}') #KB rom_free=$(df -P -k "$BINDIR" 2>/dev/null | awk 'END{print $4}') #KB
[ -z "$rom_free" ] && return 1 [ -z "$rom_free" ] && return 1
case "$(df -T "$BINDIR" 2>/dev/null | awk 'END{print $2}')" in case "$(df -P -T "$BINDIR" 2>/dev/null | awk 'END{print $2}')" in
squashfs|ubifs|overlay|overlayfs) est=$(( ${1:-0}/1024/2 )) ;; #透明压缩,约2:1 squashfs|ubifs|overlay|overlayfs) est=$(( ${1:-0}/1024/2 )) ;; #透明压缩,约2:1
*) est=$(( ${1:-0}/1024 )) ;; #无压缩,全量 *) est=$(( ${1:-0}/1024 )) ;; #无压缩,全量
esac esac