Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: Bash-skript porovnání dvou souborů [Vyřešeno]  (Přečteno 3858 krát)

veron

  • Návštěvník
  • Příspěvků: 2
Bash-skript porovnání dvou souborů [Vyřešeno]
« kdy: 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


« Poslední změna: 03 Dubna 2008, 13:20:25 od veron »

stderr

  • Aktivní člen
  • *
  • Příspěvků: 275
  • globglob, Charliee, we're scuba diving Charlieee!
Re: Bash-skript
« Odpověď #1 kdy: 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?
« Poslední změna: 02 Dubna 2008, 22:40:49 od kubiis »
Fedora & CentOS (RHEL) user ... co tu vlastně dělám?
Blog /dev/stderr & twitr

wam]Spider007

  • Host
Re: Bash-skript
« Odpověď #2 kdy: 02 Dubna 2008, 22:44:43 »
-eq by malo byt equal, v tom problem nevidim...

veron

  • Návštěvník
  • Příspěvků: 2
Re: Bash-skript
« Odpověď #3 kdy: 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
« Poslední změna: 03 Dubna 2008, 00:22:09 od veron »

Pavelp

  • Host
Re: Bash-skript porovnání dvou souborů
« Odpověď #4 kdy: 03 Dubna 2008, 08:41:01 »
Return kod 0 je implicitne ANO u vetsiny coreutils. A tak se i vyhodnocuje.

 

Provoz zaštiťuje spolek OpenAlt.