bash: předání parametru pro 'find' z proměnné

Petr2

bash: předání parametru pro 'find' z proměnné
« 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


perceptron

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #1 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


Petr2

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #2 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á

Canon

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #3 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?

gll

  • ****
  • 429
    • Zobrazit profil
    • E-mail
Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #4 kdy: 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*"  \)'


Petr2

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #5 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

Canon

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #6 kdy: 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

Kit

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #7 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.

Canon

Re:bash: předání parametru pro 'find' z proměnné
« Odpověď #8 kdy: 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