我在脚本中有一个 Zenity 消息框,
zenity --info --text='done' > /dev/null 2>&1
我需要在文件小于 30 KB 时弹出一条消息,例如:“文件小于 30 KB!”。
我该如何编写“if then else”脚本来弹出 zenity 消息,例如:“FILE”小于 30 KB?
谢谢!
答案1
#!/bin/bash
if [ $(stat --printf="%s" FILENAME) -lt 30720 ]; then
zenity --info --text='file is smaller then 30 KBytes!' > /dev/null 2>&1
fi
答案2
这些示例使用特定于更现代的 shell(例如 Bash、ksh 和 zsh)的语法。
有些系统没有stat
,你不应该解析ls
。
result=$(find . -maxdepth 1 -name "$file" -size -30k)
if [[ ${result##*/} = $file ]]
then
zenity --info --text='The file is smaller then 30 KBytes!' > /dev/null 2>&1
fi
其中“30k”等于 30720。如果您愿意,可以使用-size -30000c
。
如果你有stat
:
size=$(stat -c '%s' "$file")
if (( size < 30720 )) # or you could use 30000
then
zenity --info --text='The file is smaller then 30 KBytes!' > /dev/null 2>&1
fi
答案3
SIZE=`ls -l $1 | awk '{print $5}'`
if [ $SIZE -lt 30720 ]
then
zenity --info --text='File is smaller than 30KB' > /dev/null 2>&1
fi