Teprve ted jsem si vsimnul, ze chces pres promennou d na cmdline grepu predat vic nez jeden parametr. Pak pouzij
grep -i $d
(ale to -e je tam zpravidla zbytecne, viz. man grep)
Nelze rict, ze v uvozovkach se vyhodnocuji regularni vyrazy, to je nonsens. grep vyhledava reg. vyraz, ktery dostane na cmdline. At pouzijes uvozovky nebo apostrof, nic z toho nikdy grep neuvidi--"spolkne" to shell, jen to ridi, co shell grepu na cmdline preda. A zjednodusene receno to v apostrofech mu preda 1:1 (beze zmeny), kdezto na tom v uvozovkach predtim provede mj. expanzi promennych. Dulezite ale je uvedomit si, ze pokud udelas
grep -i "$d"
tak i kdyz promenna d bude obsahovat vice slov, grep pak techto vice slov dostane jako jeden parametr (a v tomto pripade to pochopi jako search pattern). Proto, kdyz chces predat promennou obsahuji "-e linux" a chces, aby to grep dostal jako dva parametry, nesmis uvozovky pouzit vubec.