Portál AbcLinuxu, 10. listopadu 2025 05:38
FS=/mnt/ext_hdd/
USAGE=`df | grep $FS | awk '{ print $5 }' | sed "s/%//"`
PERCENT=90
if [ $USAGE < $PERCENT ]
then
echo Dostatek mista
else
echo Nedostatek mista
fi
Vždy když ladíš podobnou sekvenci příkazů, tak začni u jednoho a postupně přidávej další, pak hned uvidíš co Ti leze z grepu a v čem je problém. Musíš to rozpitvat na malé dílky a každý zkontrolovat. Jinak máš špatně porovnání, správně je to:
if [ $USAGE -lt $PERCENT ]
if [ $USAGE < $PERCENT ]; then echo Dostatek mista; else echo Nedostatek mista ;fi
Co Ti výpíše:
#!/bin/bash
FS="/mnt/ext_hdd/"
USAGE=`df |grep $FS |awk '{ print $5 }' |sed "s/%//"`
PERCENT=90
echo "USAGE = $USAGE"
echo "PERCENT = $PERCENT"
if [ "$USAGE" -lt "$PERCENT" ]; then
echo Dostatek mista
else
echo Nedostatek mista
fi
Proměná USAGE je prázdná, proto Ti to píše "Illegal number", jak jsem psal, rozpitvej si sekvenci příkazů, které tvoří proměnou USAGE na menší dílky a analyzuj co dělají...
Už to vidím, máš nadbytečné lomítko na konci proměné FS, proto Ti grep nic nevyplivne na výstup:
FS="/mnt/ext_hdd/"
Přilož skript i výpis df.
echo $USAGE - treba zjistite, ze tam neni to, co jste cekal...
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.