Я заметил, что этому вопросу уже несколько лет, поэтому он может не помочь оригинальному плакату, но может помочь кому-то другому.
Первый :"диспетчер очереди задач" - это ответ. Он довольно мощный и есть в большинстве дистрибутивов Linux и Homebrew.
Но на многих серверах, которые я использую, я не могу устанавливать произвольные пакеты без особых хлопот, поэтому мне нужно что-то идеально чистое bash (или perl или подобное ).
После того, как я некоторое время боролся с этим, я придумал чистую реализацию bash, которая до сих пор работает нормально. Вы можете найти его по адресу https://github.com/sitaramc/notes/blob/master/bq, с документацией .
Это всего лишь один bash-скрипт, так что установка не составляет труда. Тем не менее, это нарушает ваши вторые и третьи требования (, но их реализация также должна быть тривиальной ).
Сценарий подробно прокомментирован, и вы сможете просмотреть его через несколько минут, если захотите.
Кажется, это работает:
curl -s -L --cookie-jar cookies.txt -d 'usr=admin&pwd=12345' http://testing-ground.scraping.pro/login?mode=login | grep -E 'DENIED|WELCOME'
Выход:
<li>If you see <span class="success">WELCOME :)</span> then the user credentials were sent, the cookie was passed and HTTP redirect was processed</li>
<li>If you see <span class="error">ACCESS DENIED!</span> then either you entered wrong credentials or they were not sent to the server properly</li>
<h3 class='success'>WELCOME :)</h3><a href='login'><< GO BACK</a></div>
-s
тихий режим без индикатора выполнения. Вывод отправляется на стандартный вывод. -L
выполните перенаправление 302 --cookie-jar cookies.txt
использовать файлы cookie и записывать файлы cookie в файлcookies.txt
-d 'usr=admin&pwd=12345'
Данные POST usr=admin
иpwd=12345