Portál AbcLinuxu, 13. května 2025 20:05
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.