Fórum Root.cz

Hlavní témata => Software => Téma založeno: Petr2 06. 09. 2018, 20:38:58

Název: bash: předání parametru pro 'find' z proměnné
Přispěvatel: Petr2 06. 09. 2018, 20:38:58
promiňte, už přes hodinu se lopotím a nevím...
chci vyhledávat soubory podle obsahu v proměnné, např.
par="\(  -iname "w*" -o -iname "*sort*"  \)"

a chci spustit 'find $par',  ale  pořád tu mám chybu find: paths must precede expression

zkouším odstranit backslash, obalit $par uvozovkami...
poraďte prosím
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: perceptron 06. 09. 2018, 20:46:45
syntax findu je

find /home/perceptron -name fail.pdf

najprv ide cesta, potom idu expressions. aka je cesta u vas? lebo vy ste ju vynechali

Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Petr2 06. 09. 2018, 20:50:25
tím to nebude, cesta je volitelná
když to vložím manuálně 'find \(  -iname "w*" -o -iname "*sort*"  \)' tak to dělá co má
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Canon 06. 09. 2018, 21:08:15
Myslite ze uvozovky se vnoruji? Viz priklad - rekl bych ze se interpretuji zleva doprava a vznika paskvil, nebo ne?
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: gll 06. 09. 2018, 21:09:08
tím to nebude, cesta je volitelná
když to vložím manuálně 'find \(  -iname "w*" -o -iname "*sort*"  \)' tak to dělá co má

 par='\(  -iname "w*" -o -iname "*sort*"  \)'
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Petr2 06. 09. 2018, 21:09:27
jj, máte pravdu a bez těch závorek
par="-iname \"8w*\" -o -iname \"*sort*\" "

díky
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Canon 06. 09. 2018, 21:15:19
jj, máte pravdu a bez těch závorek
par="-iname \"8w*\" -o -iname \"*sort*\" "

díky

 To je divne parse, spis se mi libi to gilovo, byt bez zavorek
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Kit 06. 09. 2018, 21:25:30
Když budeš používat uvozovky tam, kde mají být apostrofy, tak riskuješ, že se ti expanduje i to, co nechceš. Například hvězdička.
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Canon 06. 09. 2018, 21:40:17
jj, máte pravdu a bez těch závorek
par="-iname \"8w*\" -o -iname \"*sort*\" "

díky

 To je divne parse, spis se mi libi to gilovo, byt bez zavorek
Konkretne to asi vyjde nastejno, byt bez klavesnice se to predstavuje blbě, ale pokud bys později nahradil to w* třeba $1 , tak se ta tvoje varianta rozpadne. Double quota Do Dollar substitutions :-) resp $ a \   Single quota ignoruji vsechny specialni vyznamy