Portál AbcLinuxu, 13. května 2025 20:05

Dotaz: Nefunkční script

1.3.2010 17:01 Kukulin
Nefunkční script
Přečteno: 276×
Odpovědět | Admin
Předem bych se chtěl omluvit,ale nějak nemůžu zeditovat poslední příšpěvek,který jsem zde dnes napsal. Nechápu,včem mám chybu.. Jako kdyby grep přepsal hodnotu $5
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
Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Fuky avatar 1.3.2010 17:14 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Nefunkční script
Odpovědět | | Sbalit | Link | Blokovat | Admin

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 ]

Proměnné, podmínky a cykly

-- RÁMO: psí tábor , ETriatlon: Výuka plavání
1.3.2010 17:18 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Pořád to háže chybu

[: 10: -lt: unexpected operator Nedostatek mista
1.3.2010 17:41 lukas
Rozbalit Rozbalit vše Re: Nefunkční script
Preco tam nedavas bodkociarky?

if [ $USAGE < $PERCENT ]; then echo Dostatek mista; else echo Nedostatek mista ;fi
1.3.2010 17:44 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Mám tam středníky,nechvím,proč se nezkopírovaly
1.3.2010 17:42 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Udělal jsem mezeru mezi rovnase a hodnotou u FS, df a PERC. , teď to píše Pemission denied. Jsem na root
Fuky avatar 1.3.2010 17:48 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Nefunkční script
Přilož celý skript jako přílohu a výpis df.
Fuky avatar 1.3.2010 17:46 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Nefunkční script

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
1.3.2010 17:54 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Zkopíroval jsem Vaší variantu, ale stejně to vyhodí chybu. Nerozumím tomu....

USAGE = PERCENT = 90 [: 14: Illegal number: Nedostatek mista
Fuky avatar 1.3.2010 17:56 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Nefunkční script

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í...

Fuky avatar 1.3.2010 18:01 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Nefunkční script

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/"
1.3.2010 18:17 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Stále nic. Já už si nevím rady. Vždyť je to tak primitivní.
Fuky avatar 1.3.2010 18:24 Fuky | skóre: 52 | blog: 4u
Rozbalit Rozbalit vše Re: Nefunkční script

Přilož skript i výpis df.

1.3.2010 18:31 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Takže do USAGE se mi uloží "Volné 47", a proto to nemůže porovnat.
1.3.2010 18:37 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Šlo o to,že sed mi umazal jen procenta. A pritom se mi do df ukladalo Použité a 47%,což je argument volného místa. Nevím proč. Zpravil jsem to df -h a už to fičí. Tak díky všem za pomoc. Víte... Linux jsem nainstalovat asi před týdnem.díky :))
Tarmaq avatar 1.3.2010 17:50 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Nefunkční script
vloz sem ten skript mezi tagy <pre> a </pre>, opravdu je pro me (a asi i pro ostatni) tezke pochopit o co se vlastne pokousis a co tam mas spatne..
Don't panic!
1.3.2010 17:58 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Máte to tu od uživatele Fuky. Pokud ta podmínka platí, tak se bude kopirovat záloha,pokud ne,umaže se nejstarší přidaný soubor. To tam necpu, když mi nejde tenhle základní koncept

Jde o to,že si uložím do proměné procentuální velikost místa na hdd, a porovnám ji s 90, pokud. Nic jiného v tom není.
1.3.2010 18:00 lukas
Rozbalit Rozbalit vše Re: Nefunkční script
bash -x ti nepomoze?
1.3.2010 17:59 lukas
Rozbalit Rozbalit vše Re: Nefunkční script
ja doteraz nechapem o co mu ide...
1.3.2010 18:10 JMP | skóre: 30
Rozbalit Rozbalit vše Re: Nefunkční script
zkuste si pred to if... dat radek echo $USAGE - treba zjistite, ze tam neni to, co jste cekal...
1.3.2010 18:13 Kukulin
Rozbalit Rozbalit vše Re: Nefunkční script
Přesně tak, není tam nic. Takže chyba bude v proměnné df
1.3.2010 22:39 moo
Rozbalit Rozbalit vše Re: Nefunkční script
df nie je premenna, ale program

mas to zariadenie namountovane?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.