Autor Wątek: Eskejpowanie cudzysłowi w argumentach polecenia  (Przeczytany 1559 razy)

Offline Karol

  • Użytkownik

# Wrzesień 14, 2015, 13:27:26
Mam pi razy drzwi taki skrypt :

#!/bin/sh
A=`tool costam`;
B=`tool cosinnego`;
curl -X POST -F "paramA=$A" -F "paramB=$B" URL

Czyli pobieram output dwóch poleceń do zmiennych, a potem ten output używam jako parametry do curla. Problem pojawia mi się, jeżeli A lub B zawiera także " w swojej treści, wtedy cały parametr się rozjeżdża i curl go nie wysyła.

Ma ktoś jakiś pomysł co z tym zrobić? Bo nie bardzo wiem nawet jak to w google ugryźć (tzn coś tam znalazłem, ale nie bardzo dało się to zaaplikować, albo ja nie kumaty, to też możliwe :P).

Offline Mr. Spam

  • Miłośnik przetworów mięsnych

Offline .:NOXY:.

  • Użytkownik
    • Profil

# Wrzesień 14, 2015, 15:31:50
A tak? curl -X POST -F "paramA=/"$A/"" -F "paramB=/"$B/"" URL

Offline Karol

  • Użytkownik

# Wrzesień 14, 2015, 15:56:28
Nie idzie, A jest równe
Test "czy" to przejdzie? óąłąśęźć
dochodzi tylko
/Test

Ale jest poprawa, wcześniej nic nie dochodziło :D.

Póki co rozwiązałem problem "na około"

#!/bin/sh
tool costam > tmp_A.txt
tool cosinnego > tmp_B.txt
curl -X POST -F "paramA=<tmp_A.txt" -F "paramB=<tmp_B.txt" URL
rm tmp_A.txt
rm tmp_B.txt
« Ostatnia zmiana: Wrzesień 14, 2015, 16:28:02 wysłana przez Karol »

Offline Xion

  • Redaktor
    • xion.log

# Wrzesień 14, 2015, 19:48:24
$ cat ./quoting.sh
#!/bin/sh
a=\"foo\"
curl -vv -H "X-Foo: $a" xion.io

$ ./quoting.sh 2>&1 | grep 'X-Foo'
> X-Foo: "foo"
i.e. works for me. Sprawdź czy te komendy które niby zwracają wartości z cudzysłowami rzeczywiście to robią.

Offline Paweł

  • Użytkownik

# Wrzesień 15, 2015, 01:49:37
Coś takiego może:
curl -X POST -F "paramA='"$A"'" -F "paramB='"$B"'" URL