Fórum Ubuntu CZ/SK

Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: veron 02 Dubna 2008, 22:24:52

Název: Bash-skript porovnání dvou souborů [Vyřešeno]
Přispěvatel: veron 02 Dubna 2008, 22:24:52
PLS,muze mi nekdo poradit se skriptem. Snazim se udelat skript na porovnani dvou souboru:

Kód: [Vybrat]
#!/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


Název: Re: Bash-skript
Přispěvatel: stderr 02 Dubna 2008, 22:38:43
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?
Název: Re: Bash-skript
Přispěvatel: wam]Spider007 02 Dubna 2008, 22:44:43
-eq by malo byt equal, v tom problem nevidim...
Název: Re: Bash-skript
Přispěvatel: veron 02 Dubna 2008, 22:56:14
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 :)
Kód: [Vybrat]
#!/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
Název: Re: Bash-skript porovnání dvou souborů
Přispěvatel: Pavelp 03 Dubna 2008, 08:41:01
Return kod 0 je implicitne ANO u vetsiny coreutils. A tak se i vyhodnocuje.