Fórum Root.cz

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

Název: bash: předání parametru pro 'find' z proměnné
Přispěvatel: Petr2 kdy 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 kdy 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 kdy 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 kdy 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 kdy 06. 09. 2018, 21:09:08
Citace od: Petr2 kdy 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á

par='\(  -iname "w*" -o -iname "*sort*"  \)'
Název: Re:bash: předání parametru pro 'find' z proměnné
Přispěvatel: Petr2 kdy 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 kdy 06. 09. 2018, 21:15:19
Citace od: Petr2 kdy 06. 09. 2018, 21:09:27
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 kdy 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 kdy 06. 09. 2018, 21:40:17
Citace od: Canon kdy 06. 09. 2018, 21:15:19
Citace od: Petr2 kdy 06. 09. 2018, 21:09:27
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