Чтение вывода HTTP с использованием сценария shell/bash
Мой URL (http://myhost.com/getuser/Default.aspx?username= b772643) всегда возвращает следующую строку информации:
John, Thomas;John.B.Thomas@Company.com
Я хочу прочитать эту строку, используя скрипт оболочки или bash без wget / lynx. Я нахожусь в ситуации, когда я не могу использовать любую другую утилиту, язык Perl и т. Д.
4 ответа
Curl или wget, очевидно, лучше подходят для этой работы, но для записи bash и стандартные команды Unix (cat & printf) могут выполнить эту работу.
ksh представил внутреннюю обработку оболочки сети, и это было принято bash.
#!/bin/bash
exec 5<> /dev/tcp/myhost.com/80
cat <&5 &
printf "GET /getuser/Default.aspx?username=b772643 HTTP/1.0\r\n\r\n" >&5
Один лайнер:
(echo 'GET /getuser/Default.aspx?username=b772643' > /dev/tcp/myhost.com/80);
Так
curl "http://myhost.com/getuser/Default.aspx?username=b772643"
curl "http://myhost.com/getuser/Default.aspx?username=b772643"| sed 's/\(.*\);\(.*\)/\2 \1/' | while read email name; do echo =$email=$name=; done
Вы можете использовать:
curl "http://myhost.com/getuser/Default.aspx?username=b772643"
и извлекать данные из того, что возвращается:)