Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: veron 02 Dubna 2008, 22:24:52
-
PLS,muze mi nekdo poradit se skriptem. Snazim se udelat skript na porovnani dvou souboru:
#!/bin/bash
if (cmp ./vystup.txt ./vzorovy_vystup.txt -eq 0)
then
echo "soubory se shoduji"
else
echo "soubory se NEshoduji"
fi
ale haze mi to porad chybu: cmp: invalid option -- e
zkousel jsem jiz vselijake moznosti, ale porad nemuzu prijit nato, kde je zakopany pes
predem diky za jakekoliv navrhy
-
V bashi se moc nevyznám, ale co ten přepínač -eq má přesně dělat? ;) nemělo by tam být něco jako = nebo == 0?
-
-eq by malo byt equal, v tom problem nevidim...
-
zkousel jsem tam hodit = ,ale taky to nebere. Pac si to interpretuje, jako dalsi parametr toho cmp a nikoliv jako porovnavaci operator :-\
a to same plati aj s tim -eq
EDIT: tak jsem koumal az jsem dokoumal, ze to stacilo napsat bez toho porovnani :)
#!/bin/bash
if (cmp ./vystup.txt ./vzorovy_vystup.txt)
then
echo "soubory se shoduji"
else
echo "soubory se NEshoduji"
fi
i kdyz stale nechapu, ze v pripade, kdy se soubory rovnaji (cmp vraci 0), ze se vypise prvni echo. V C bych to ocekaval presne naopak if(1) podminka vyhodnocena jako pravdiva, if(0) podminka vyhodnoce jako chybna->nasleduji prikazy za else
-
Return kod 0 je implicitne ANO u vetsiny coreutils. A tak se i vyhodnocuje.