Bash a argument s mezerami
Martin Kraus
martin.kraus na infonet.cz
Pondělí Září 12 17:52:33 CEST 2005
> resim problem, kdy mam v shellu (bash) v promenne ulozen prikaz, ktery
> chci proves a tento prikaz bere argumenty, ktere obsahuji mezeru.
> Bohuzel se me nedari zadnou kombinaci uvozovek, apostrofu, ci zpetnych
> lomitek dosahnout toho, aby to fungovalo spravne. Poradi nekdo?
>
> nefunkci priklad: (mam adresar "p p" [pe mezera pe])
> #!/bin/sh
>
> LS="ls \"p p\""
no ja bych plynule navazal a zeptal se na nasledujici:
mam promennou ve ktere je neco jako
'a b "c d"'
a chtel bych to rozparsovat v cyklu na jednotlive substringy, tedy
abych dostal vysledne:
a
b
c d
urcite by to resil awk/sed, ale dalo by se to udelat ciste v shellu?
for me to nejak escapuje, takze
for i in a b "c d"; do .......; done
funguje tak jak ma, ale
a='a b "c d"'
for i in $a; do ........; done
vytvori:
a
b
"c
d"
co me uniklo?
diky
mk
Další informace o konferenci Linux