У меня есть окно сообщения Zenity в скрипте

zenity --info --text='done' > /dev/null 2>&1

Мне нужно всплывающее сообщение, например: "файл меньше, чем 30 КБ!msgstr "когда файл меньше 30 кбайт.

Как я мог бы написать сценарий "если тогда еще" для всплывающего сообщения zenity, например, например: "ФАЙЛ" меньше 30 КБайт?

Спасибо!

3 ответа3

3
#!/bin/bash

if [ $(stat --printf="%s" FILENAME) -lt 30720 ]; then
    zenity --info --text='file is smaller then 30 KBytes!' > /dev/null 2>&1
fi
1

В этих примерах используется синтаксис, специфичный для более современных оболочек, таких как 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
0
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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .