La scrip shell suivante vérifier l'espace disque et changer la variable diskfull
-1
si l'utilisation est plus de 10% Le dernier écho montre toujours 0
J'ai essayé le global diskfull=1
dans la clause if mais n'a pas fonctionné. Comment modifier la variable à 1
si le disque consommé est supérieur à 10%?portée de la variable dans le tuyau
#!/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
Etes-vous sûr que le corps de l'instruction if est en cours d'exécution? Plus que probable, if est en train d'évaluer false et la ligne diskfull = 1 n'est jamais exécutée. – asm
Merci pour toutes les réponses.Ce que j'ai fait, c'est que j'ai quitté la clause if avec le statut de sortie 1, puis sauvegardé cette variable dans diskfull immédiatement après "done". Cette solution de contournement semble fonctionner. – shantanuo