editace souboru davkove v shellu

Alexandr Malusek malusek na hroch.ujf.cas.cz
Pondělí Říjen 23 11:50:17 CEST 2000


Petr.Novotny na antek.cz (Petr Novotny) writes:

> Pokud skript zacina #!/bin/sh, predpokladam, ze pobezi i s /bin/sh.

Myslim, ze podle XPG4 specifikace je /bin/sh totez co ksh88. Komercni
Unixy se snazi tyto (a podobne) specifikace dodrzovat. Obecne tam tedy
neplati, ze skript zacinajici #!/bin/sh musi bezet i pod klasickym
Bourne shellem. Uznavam, ze to prispiva ke zmatku.

Samozrejme souhlasim s tim, ze klasicke Bourne shell skripty pobezi
skoro na kazdem Unixu. Ale na druhou stranu systemu, kde syntaxe
$(command) nefunguje uz mnoho neni. My tu mame napr. Solaris 1.x v MR
scanneru od General Electric, jinak na ostatnich 15-20 WS to funguje.

$() funguje pod ksh, bash, zsh a sh (XPG4). Rozhodne to neni
zalezitost jen Bashe a strasit zacatecniky, ze kdyz pouziji tuto
syntaxi, tak jejich skripty budou neprenositelne, je prehnane.
Osobne nekdy pouzivam ``, jindy $(). Ale prepisovat konstrukce

M="$(m3x3_add $A $(m3x3_sub $(m3x3_mmu $C $D) $G))"

(implementace maticovych a vektorovych operaci v shellu) do `` formy
kvuli prenositelnosti rozhodne nebudu ;-).

--
A. Malusek  (malusek na ujf.cas.cz)
UJF AV CR


Další informace o konferenci Linux