sh: uvozovky v promenne

Miroslav Prýmek m.prymek at gmail.com
Thu Aug 8 13:08:43 CEST 2013


Ahoj,

trapim se s nasledujicim problemem a porad mne nejak nenapada, jak ho
korektne vyresit. Potreboval bych aspon nakopnout, jakym smerem se vydat.

Mam skript, ktery pouziva parametr z prikazove radky a ma ho vlozit do
jsonu pro curl, nejak zhruba takhle (orezano na kost):

-----
#!/bin/sh

x=$1

/usr/local/bin/curl -sS -i \
   -H 'Content-Type: application/json' \
   -d '{"neco":"'$x'"}'
-----
P.S. pokud vim, json vyzaduje dvojite uvozovky

Resim problem, jak promennou spravne escapovat, aby uzivatel do parametru
nemohl vlozit uvozovky a tim skript rozbit. Kdyz pouziju ${x/a/b}, tak na
me shell zarve, ze "Bad substitution". Nejak se mi nepodarilo najit, jak by
spravna substituce mela vypadat :(

Zkousel jsem na to jit ruznymi zpusoby, sedem, tr, ale uplne korektni a
nicim nerozbitelne reseni ne a ne najit. Dost me to vytaci, ze takovou
celkem zakladni vec nejsem schopnej rozlousknout. Zatim to svadim na vedro,
ale je to moc pruhledny sebeobelhavani ;)

Dik za pomoc

Mirek

P.S. samozrejme to potrebuju vyresit ve FreeBSD /bin/sh, maximalne pomoci
/bin/csh. Bash apod. neni reseni.


More information about the Users-l mailing list