Как я могу передать аргументы командной строки, содержащие специальные символы, процессу, запущенному через Perl или Bash? - PullRequest
1 голос
/ 02 октября 2009

Мне нужно запустить curl для теста. Мне нужно отправить XML, который имеет "/ и другие сумасшедшие вещи. Какой самый быстрый способ сделать это? Я попытался

curl -k -d '<xs:element name="Login"/>' https://thewebsite.com/page.exe

без удачи.

Ответы [ 3 ]

3 голосов
/ 02 октября 2009

В Perl используйте форму списка system :

system curl 
    => qw(-k -d '<xs:element name="Login"/>' https://thewebsite.com/page.exe);

Или, еще лучше, используйте WWW :: Curl (см. Также документацию libcurl ).

2 голосов
/ 02 октября 2009

Использование 'qw' для цитирования параметров, указанных в одном из ответов здесь, не правильно, qw явно экранирует и пропускает одинарные кавычки вокруг тега xs, тогда как в примере с OP они не будут

Вы можете использовать ...

system('curl', '-k', '-d', '<xs:element name="Login"/>', 
       'https://thewebsite.com/page.exe');

Что должно быть тем, что вы ищете. Я бы попробовал использовать модуль.

1 голос
/ 02 октября 2009

Обратная косая черта избежать этого.

\"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...