Чтение вывода 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"

и извлекать данные из того, что возвращается:)

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