grep v sh

Alexandr Malusek malusek na hroch.ujf.cas.cz
Čtvrtek Listopad 27 16:45:48 CET 1997


MIKI na adam.fek.zcu.cz (Mikulas Gangur) writes:

>  Prikaz grep radkuje svuj vystup. Pokud pouziji prikaz grep ve 
>  skriptu jako soucast sestaveneho prikazu do nejake promene a potom ho 
>  spoustim  pomoci echo prikazu s danou promenou, vystup neni radkovan 
>  a vse se vypise na jednu radku. Nevite, jakym zpusobem docilit 
>  radkovani i v tomto pripade ?   

Mozna jsem otazku nepochopil spravne, nicmene podivejte se na
nasledujici priklad:

$ grep l f1
l1
l2
$ A=`grep l f1`
$ echo $A
l1 l2
$ echo "$A"
l1
l2

V prvnim pripade shell nejprve nahradi vyraz $A hodnotou promenne A,
pak provadi dalsi analyzu tohoto radku. Pri ni interpretuje znaky
\n jako oddelovace argumentu. Tedy prikazu echo jsou predany dva
argumenty l1 a l2.

V druhem pripade je prikazu echo predan jen jeden argument (l1\nl2\n).

Je to obecna vlastnost Bourne shellu (a s nim kompatibilnich shellu
jako bash, ksh, ...) - misto grepu tam muzete mit treba prikaz cat.

Take si vsimnete, ze csh (tcsh) se chova jinak:
csh> echo "$A"
csh> l1 l2


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


Další informace o konferenci Linux