URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 10192
[ Назад ]

Исходное сообщение
"Прошу улучшить скрипт для curl"

Отправлено tochki , 09-Дек-17 21:03 
Хочу отправлять многострочные запросы на сайт, например яндекс. Мой скрипт:

SITE="http://ya.ru";
cat - > ~/input;
curl --data "text=$(cat ~/input)" $SITE;

Вопрос: как закончить редактирование многострочного текста по нажатию ctrl+d -- сразу в запрос curl без помощи файла ~/input (и без использования cat)?

Перефразирую вопрос: команда cat - > ~/input сохраняет многострочный текст в файл. Как сделать чтобы скрипт cat_curl отправлял многострочный текст на сайт?

cat_curl - > www.ya.ru

PS cat привел в качестве примера, потому что уже привык к комбинации ctrl+d


Содержание

Сообщения в этом обсуждении
"Прошу улучшить скрипт для curl"
Отправлено pavlinux , 09-Дек-17 23:03 
> Прошу улучшить

Только я не увидел сумму оплаты?


"Прошу улучшить скрипт для curl"
Отправлено tochki , 10-Дек-17 06:25 
>> Прошу улучшить
> Только я не увидел сумму оплаты?

Забыл указать сумму: 200 биткойнов!!


"Прошу улучшить скрипт для curl"
Отправлено ford1813 , 11-Дек-17 13:40 
>>> Прошу улучшить
>> Только я не увидел сумму оплаты?
> Забыл указать сумму: 200 биткойнов!!

199, по рукам?


"Прошу улучшить скрипт для curl"
Отправлено михалыч , 11-Дек-17 17:55 
>>> Прошу улучшить
>> Только я не увидел сумму оплаты?
> Забыл указать сумму: 200 биткойнов!!

каждому!!


"Прошу улучшить скрипт для curl"
Отправлено ыы , 11-Дек-17 18:39 
>>>> Прошу улучшить
>>> Только я не увидел сумму оплаты?
>> Забыл указать сумму: 200 биткойнов!!
> каждому!!

И деньги - вперед!


"Прошу улучшить скрипт для curl"
Отправлено Аноним , 01-Янв-18 19:51 
cat | curl -d @- $SITE


Перл учите, фигней не страдайте.


"Прошу улучшить скрипт для curl"
Отправлено tockhki , 05-Янв-18 14:17 
> cat | curl -d @- $SITE
> Перл учите, фигней не страдайте.

Запускаю этот однострочник, пытаюсь ввести многострочное сообщение. Оставляю пустую строку и жму ctrl+c для обозначения EOF.
После нажатия ctrl+c скрипт завершается, не дойдя до curl. На сайт ничего не отправляется.


"Прошу улучшить скрипт для curl"
Отправлено Аноним , 10-Фев-18 13:34 
>> cat | curl -d @- $SITE
>> Перл учите, фигней не страдайте.
> Запускаю этот однострочник, пытаюсь ввести многострочное сообщение. Оставляю пустую строку
> и жму ctrl+c для обозначения EOF.
> После нажатия ctrl+c скрипт завершается, не дойдя до curl. На сайт ничего
> не отправляется.

Ох лол. Надеюсь вы уже избавились от своего заблуждения. C-c отправляет сигинт, а не передает еоф. Для еоф обычно C-d.

Вы кстати можете написать иначе

cat <<EOF | ...

Тогда вместо C-d вы напишете с новой строки EOF и будет передан EOF. С точки зрения работы терминала это будет то же самое.

Вообще это все есть в книгах, которые реально прочитать за пару выходных. И не будет непоняток.


"Прошу улучшить скрипт для curl"
Отправлено tockhki , 28-Фев-18 16:28 
Спасибо большое за простой и ясный ответ!
Все работает, НО! Этот скрипт работает в чистом баше, а в tmux не работает, выдается ошибка о каком-то недоступном ресурсе. Буду искать решение дальше.
Перл, кстати я люблю и уважаю, но к C-d или C-c в шелле он отношения не имеет, как тут кто-то советовал.