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