В тестовом скрипте столько раз я использую команду «curl». Чтобы оптимизировать код, я хочу, чтобы опции «curl» выполнялись в глобальной переменной.Как указать параметры команды в одной переменной?
Я прочитал условия использования «curl», и он говорит, что для передачи параметра, который содержит пробелы, должен быть заключен его в одинарные кавычки.
Но он не работает.
$ curl_options="-i -L -k -S --connect-timeout 30 --user-agent 'Opera/9.80 (Windows NT 6.1; WOW64) Presto/2.12.388 Version/12.14'"
$ curl $curl_options "http://google.com"
Выход Результат:
curl: (6) Couldn't resolve host'' Opera '
curl: (6) Couldn't resolve host '(Windows'
curl: (6) Couldn't resolve host 'NT'
curl: (6) Couldn't resolve host '6 .1; '
curl: (6) Couldn't resolve host 'WOW64)'
curl: (6) Couldn't resolve host 'Presto'
curl: (6) Couldn't resolve host 'Version'
Я давно понял этот код. Но команда не одобрила этот код. – user2219963
Я обновил с помощью POSIX-совместимого решения, используя 'eval'. Надеюсь, кто-то может придумать более безопасный, но я думаю, что этот случай использования был одним из оснований для добавления поддержки массива. – chepner
У меня есть другая переменная \t html_content = 'свернуться $ curl_options "http://google.com"' \t html_content = 'Eval "свернуться $ curl_options http://google.com"' этот вариант будет бред какой то. – user2219963