Portál AbcLinuxu, 28. května 2024 08:18

Pouzivani more misto cat ve skriptech

4.10.2006 13:33 | Přečteno: 1383× | Unix | Výběrový blog

Mezi kolegy jsem byl jiz nekolikrat svedkem svedomiteho pouzivani prikazu more na miste kde by melo byt cat, napr: more /etc/passwd | grep root

Nikdy jsem nekoukal do vnitrnosti (uprimne, ani do manu) more, ale moje dosavadni poznani (unix) sveta mi rika, ze:

  1. na tohle neni urcen, na to je cat
  2. more byl napsan pro to, aby "pozastavil" vypis na obrazovku vzdy po $pocet_radku radcich a cekal na stisk klavesy. Predpokladam, ze more je naprogramovan natolik inteligentne, ze si (stejne jako napr. ls kontroluje vystup, do ktereho pise, a pokud se nejedna o terminal ( man 3 isatty), t.j. pise do roury nebo do souboru, tak se nenamaha s "pozastavovanim" vystupu, protoze to nema cenu (proc pozastavovat kdyz vystup jde treba do souboru, ze?), a tudiz se vlastne jedna o cat
  3. je lepsi pouzivat "lepsi" variantu more - less (kde je k dispozici, coz dnes je skoro kazdy "UN*X flawor", skoro kazda distribuce)

Bohuzel, nic z vyse uvedeneho mi nedava zadne "zbrane" do rukou v pripade ze bych chtel kolegum vysvetlit proc to co delaji je spatne a proc by meli pouzivat cat, kdyz "it works this way".

Stale me ovsem trapi 2 otazky:

  1. Proc to delaji? Nevzdelanost, neochota, navyk? "Nemecky pristup" (t.j. takhle mi to ukazali a takhle to funguje, tak to budu opakovat do nekonecna)? Buh vi, kolegove jsou vetsinou velmi zbehli ve windows, ale unix pouzivat vetsinou umi. Ceho jsem si ale vsiml, ze nehledaji "lepsi" cesty v pouzivani nastroju (syntax higlighting, command completition, cut'n'paste mezi win a X, apod.)
  2. muze nekdy pouziti more na miste kde by melo byt cat zpusobit problemy? Existuji implementace more ktere nekontroluji vystupni zarizeni a VZDY pozastavuji vystup?
  3. jak je na tom DOSova varianta more? Je v DOSu (win dos boxu) ekvivalent cat?

       

Hodnocení: 100 %

        špatnédobré        

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

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

4.10.2006 13:34 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Odpovědět | Sbalit | Link | Blokovat | Admin
On by v tom příkladě neměl být ani ten cat :-)
Copak toho není dost?
4.10.2006 13:43 jesta.net | skóre: 6 | blog: Linux, Open Source a velke firmy... | Plzen
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech

Mas pravdu, asi jsem zvolil spatnej priklad. Co tohle: more /etc/passwd|tr -d ":" |grep root

I kdyz otazka je asi porad stejna: jestlize nasledujici prikazy delaji totez, proc bychom meli preferovat 3.?

  1. more /etc/passwd|grep root
  2. cat /etc/passwd|grep root
  3. grep root /etc/passwd

Asi jde jenom o akademickou otazku a meli bychom nechavat uzivatelum svobodu (ale at nam proboha nepisou takova zverstva do skriptu, i kdyz vlastne neskodi :-) )

You have to place another order in GORDON
4.10.2006 14:12 VícNežNic | skóre: 42 | blog: Spáleniště | Ne dost daleko
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
On ten druhý způsob je takový evoluční. Vypíšu si soubor a je toho nějak moc, tak tam dopíšu ten grep na to co mě zajímá. Ale psát to tak záměrně…
Copak toho není dost?
4.10.2006 14:15 jgv | skóre: 13
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
jestlize nasledujici prikazy delaji totez, proc bychom meli preferovat 3.?
Abychom pouzivali program k tomu, k cemu byl urcen. K cemu byl urcen je dano v manualove strance:
cat - concatenate files and print on the standard output
Tady nic nespojuju a proto ta 3 :-)
4.10.2006 14:28 jesta.net | skóre: 6 | blog: Linux, Open Source a velke firmy... | Plzen
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech

Tato argumentace se mi libi, a beru ji jako odpoved na sve otazky, diky

Doted jsem pouzival cat v pripade "potrebuju neco dostat na obrazovku", pripadne potrebuju dostat obsah souboru na std. vstup neceho jinyho. Az ted mi doslo, ze pro druhy pripad je lepsi pouzit presmerovani vstupu (grep root < /etc/passwd), ale co v pripade pokud proste potrebuju dostat na terminal obsah souboru? Jsem opravnen pouzit cat (kdyz tim nesplnim prvni podminku z manu), nebo musim pouzit nastroj? :-)

Pri obede jsem tak premyslel co nas nuti "pedantsky" trvat na malickostech, jako je toto striktni pouzivani veci na to naco byly urceny. Bud k tomu clovek dochazi vekem (no nevim), zkusenostmi (tolikrat se mi stalo ze kvuli spatne pouzitymu prikazu, ktery "proste fungoval", a v jine situaci nefungoval)? Jeste je tu jina odpoved - na to aby clovek byl pouzitelne dobry vyvojar/admin, musi byt puntickar (bohuzel ted nemuzu najit ten prispevek ze ktereho tato myslenka pochazi)...

You have to place another order in GORDON
4.10.2006 18:31 petr_p | skóre: 59 | blog: pb
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
A o pet radku nize se docteme:
Concatenate FILE(s), or standard input, to standard output.
Zrovna tak SYNOPSIS zni
cat [OPTION] [FILE]...
A co ted s tim?
wake avatar 4.10.2006 14:28 wake | skóre: 30 | blog: wake | Praha
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
3 je jeden proces, 1 i 2 jsou dva procesy => preferujeme 3 quli uspore systemovych zdroju. haf.
Tento příspěvek má hlavičku i patičku!
4.10.2006 14:35 jesta.net | skóre: 6 | blog: Linux, Open Source a velke firmy... | Plzen
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech

Dik, to je ono.

Clovek by rekl ze je to drobnost, pri dnesnich vykonech pocitacu, ale stejne, v hodne zatizenym stroji, nebo v pripade ze dany skript pobezi x-tisic-krat to bude sakra znat. Jeste jednou diky za nakopnuti.

You have to place another order in GORDON
4.10.2006 16:10 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Už aby do bashe implementovali cat jako interní příkaz a měli jsme od této pochybné argumentace pokoj…
4.10.2006 16:32 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Nakonec to dopadne tak, že se z bashe stane Perl, ale s ještě šílenější syntaxí :-)
When your hammer is C++, everything begins to look like a thumb.
5.10.2006 15:02 walley walleyovic | skóre: 4 | blog: walley
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
kdykoliv jsem se dival na syntaxi bashe nabyl jsem dojmu ze uz se to stalo, resp. syntaxe bashe je definice silenosti ...:)
5.10.2006 15:43 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Spíš bych řekl, že nejhorší chaos mají na svědomí už autoři původního Bourne shellu a že autoři bashe se naopak snaží tu syntaxi trochu "učesat"…
4.10.2006 16:39 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
to je blábol, dôležitejšia otázka znie: môže nastať situácia, keď bude nutné data iným spôsobom filtrovať? Ak áno, tak ako default filter použijem cat (nič nerobiaci filter), ak nie, zamyslím sa nad otázkou ešte raz.
5.10.2006 22:42 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Jo, tohle bylo prvni, co me napadlo - melo by to setrit zroje.
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...
4.10.2006 13:44 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
cat je ok, znamená "žiaden filter", imho je lepšie používať $cat < $file, zmeniť premennú na iný príkaz je jednoduchšie ako hľadať "kde kua to ešte nie je". :-)
4.10.2006 13:38 zabza | skóre: 52 | blog: Nad_sklenkou_cerveneho
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Odpovědět | Sbalit | Link | Blokovat | Admin
cat je fakt divnej příkaz. Většinou to vypadá, že ho lidi používaj jen aby ukázali, že ho znají :-)
4.10.2006 14:10 Kyosuke | skóre: 28 | blog: nalady_v_modre
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Lidi prostě mají rádi kočky. :-D
4.10.2006 14:19 Michal Čihař | skóre: 61 | blog: Bláboly | Praha
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
4.10.2006 13:46 happy barney | skóre: 34 | blog: dont_worry_be_happy
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Odpovědět | Sbalit | Link | Blokovat | Admin
btw, slušné skripty používajú premennú $PAGER (a tie lepšie jej aj nastavujú default hodnotu, povedzme práve na cat alebo more)
4.10.2006 14:04 Kníže Ignor | skóre: 19 | blog: stoupa
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Odpovědět | Sbalit | Link | Blokovat | Admin
v DOSu je type, ale nejsem si úplně jistý, zda po provedení type X > Y, kde X je obecný soubor, budou mít oba soubory vždy stejný obsah (help type :-D : Zobrazí obsah textového souboru.). Asi to ekvivalent nebude.
Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
4.10.2006 15:17 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
V podstatě záleží na tom, kolik toho Paul Allen stihnul z unixu do DOSu okopírovat :-)
When your hammer is C++, everything begins to look like a thumb.
5.10.2006 22:45 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Odpovědět | Sbalit | Link | Blokovat | Admin
Nemecky pristup

Koukam, ze ta zkusenost dozivotne silne poznamenala ;-)
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...
6.10.2006 00:29 jesta.net | skóre: 6 | blog: Linux, Open Source a velke firmy... | Plzen
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Nerek bych poznamenala, ja to beru proste tak ze je to dalsi zivotni zkusenost a (a to asi hlavne) vdecny zdroj narazek :-)
You have to place another order in GORDON
6.10.2006 09:05 tomm | skóre: 7 | blog: tomm's software | Sokolov
Rozbalit Rozbalit vše Re: Pouzivani more misto cat ve skriptech
Jo, velmi vdecny :-D
GUI existuje jen proto, aby se veslo vice terminalu na jednu obrazovku ...

Založit nové vláknoNahoru

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