sh: uvozovky v promenne

Miroslav Prýmek m.prymek at gmail.com
Thu Aug 8 18:40:52 CEST 2013


2013/8/8 Jan Pechanec <jp na devnull.cz>

>        takhle to nefunguje, podivej se do manu k sh(1), tam je popsano, jak
> probiha zpracovani skriptu.  Viz jednoduchy priklad:
>

        promenne do uvozovek davas ve skriptu hlavne proto, aby se ti z
> hodnoty promenne nestalo vice parametru dalsiho prikazu, pokud v hodnote
> promenne jsou mezery.
>
>
Aaaaa, super! Tohle je presne to, co mi nestimovalo. Takze kdyz to reknu
lapidarne,
pokud dam ve skriptu jako parametr promennou, muze expandovat do vic
parametru,
ale ne do vic prikazu.

To jsem potreboval vedet, dik moc.

Takze verze, ktera bude splnovat vsechny tri priority (bezpecnost, korektni
prikaz, korektni json),
bude vypadat takhle:
---------
#!/bin/sh

x=`echo $1 | sed 's/"/\\\"/g'`

/usr/local/bin/curl -sS -i \
    -H 'Content-Type: application/json' \
    -d '{"neco":"'"$x"'"}' <adresa serveru>
---------
- prvne se vsechny uvozovky nahradi retezcem \"
- pak se pomoci prolozeni uvozovek a apostrofu dosahne toho, ze urcite za
"-d" bude nasledovat
jeden parametr

Je to tak?

dik

Mirek


More information about the Users-l mailing list