Следующие сумы оболочки будут проверять дисковое пространство и изменить переменную diskfull
, чтобы 1
если использование более чем на 10% Последнего эха всегда показывает 0
Я попробовал global diskfull=1
в если п но не работал. Как изменить переменную на 1
, если потребляемый диск составляет более 10%?объем переменных в трубе
#!/bin/sh
diskfull=0
ALERT=10
df -HP | grep -vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' | while read output;
do
#echo $output
usep=$(echo $output | awk '{ print $1}' | cut -d'%' -f1 )
partition=$(echo $output | awk '{ print $2 }')
if [ $usep -ge $ALERT ]; then
diskfull=1
exit
fi
done
echo $diskfull
Вы уверены, что тело оператора if выполняется? Более вероятно, что if оценивает значение false, а строка diskfull = 1 никогда не выполняется. – asm
Спасибо за все ответы.То, что я сделал, это то, что я вышел из предложения if с условием выхода 1, а затем сохранил его для переменной diskfull сразу после «done». Кажется, что это обходное решение работает. – shantanuo