Как запустить скрипт веб-URL в терминале

Я пытаюсь запустить скрипт через мой терминал. Он отлично работает в моем браузере, но не в терминале.

Я пробовал...

sudo curl https://www.example.com/myscript?info=1

sudo wget -q -O- https://www.example.com/myscript?info=1

sudo wget https://www.example.com/myscript?info=1

Вот вывод, который я получаю...

[2] 25034
[1]   Done 

Но я знаю, что это не работает, потому что часть кода отправляет электронное письмо, это электронное письмо отправляется, когда я запускаю URL из браузера, но не удается сделать это при запуске из терминала.

1 ответ

Решение

Кажется у вас & где-то в вашем URL, следовательно, оболочка отправляет процесс в фоновом режиме.

Чтобы решить эту проблему, укажите URL.

Например, если вы используете:

curl https://www.example.com/myscript/foo&bar

оболочка будет обрабатывать URL как https://www.example.com/myscript/foo а также & после этого вызовет curl https://www.example.com/myscript/foo процесс, чтобы пойти фон. Обратите внимание, что bar после & тоже отсутствует

Так что вам нужно процитировать URL:

curl 'https://www.example.com/myscript/foo&bar'
curl "https://www.example.com/myscript/foo&bar"

Также обратите внимание, что ? имеет специальное значение для оболочки (означает любой отдельный символ), поэтому, когда у вас есть метасимволы в любом месте вашего аргумента, вы должны заключать аргумент в кавычки (если не намеренно).

Другие вопросы по тегам