sh: uvozovky v promenne

Jan Pechanec jp at devnull.cz
Thu Aug 8 22:03:11 CEST 2013


On Thu, 8 Aug 2013, Miroslav Prýmek wrote:

>2013/8/8 Jan Pechanec <jp at devnull.cz>
>
>> >    -d '{"neco":"'"$x"'"}' <adresa serveru>
>>         pokud das do x neco s mezerou, treba ``a "b'' (tj. hodnota x
>> obsahuje 4 znaky), budes mit pomoci toho, co jsi napsal, za -d dva
>> parametry:
>>
>>         prvni:  {"neco":"a
>>         druhy:  \"b"}
>>
>>         protoze specialni funkci vsech dvojitych uvozovek jsi potlacil
>> dvemi
>> sadami jednoduchych uvozovek.
>
>
>Tak tomu teda vubec nerozumim. Mam tri quotations bezprostredne za sebou -
>prvne v apostrofech, pak v uvozovkach (tam je ta promenna) a pak opet v
>apostrofech. Mel jsem za to, ze kdyz jsou quotations takhle za sebou, tak
>je shell spoji do jednoho celku. To teda taky neni pravda?

	promin, nevsimnul jsem si, ze $x bylo v uvozovkach.  V tom pripade 
to opravdu bude jeden parametr, protoze tam nikde neni jina mezera.  Pokud 
by $x nebylo v uvozovkach, bylo by to tak, jak jsem psal a pocet parametru 
by zavisel na hodnote v $x.

>> Tobe ale v tomto pripade staci tohle:
>>
>>         -d "{\"neco\":\"$x\"}"
>>
>>
>To sice jo, ale on ten json je delsi, tak jsem se chtel vyhnout hromade
>lomitek snizujicich
>citelnost na nulu...

	mne to tedy prijde citelnejsi nez mixovat jednoduchy a dvojity 
uvozovky (viz ":"'"$x"'"), ale to uz je jen osobni preference.  Ja to treba 
nemam moc rad, protoze jednoduse muzu neco prehlidnout (jako nahore ty 
uvozovky kolem $x).  Takhle vis hned, co je escapovany, ale u podretezce 
":"'"$x"'" se musis podivat na cely string, protoze jen z toho substringu 
nevis, jestli escapujes " nebo ' a pokud escapujes " tak ktery.

>>         fakt doporucuju si nekolikrat pozorne precist man k sh(1) a zkouset
>> si ruzny veci, nebo v tom budes mit porad hokej a budes tyhle veci (blbe)
>> resit metodou pokus/omyl.  Nastudovanim sh(1) si usetris spoustu casu do
>> budoucna.  Muzes mi verit, mam to z vlastni zkusenosti :-)
>>
>>
>Jo, to urcite jo. Ale pokud tam nekde je neco z toho,  na co jsem se ptal,
>tak to tam stejne nevidim :)

	ono to tam je, ale je to popsany jazykem, ktery sice byva presny, 
ale nekdy ne uplne nejcitelnejsi.  Jen je potreba to precist cely a 
nekolikrat, ono to pak zacne davat smysl a objevis uplne novy svet :-)

	h.

-- 
Jan Pechanec <jp (at) devnull (dot) cz>
http://www.devnull.cz


More information about the Users-l mailing list