Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Bash - извлечение данных из вывода команд  (Прочитано 1107 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Alf132

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Уважаемые Коллеги,  здравствуйте!
в скрипте #!/bin/bash
echo "Curl"
curl ifconfig.co
echo "*************************************************************************"
echo "Curl data assigned to var"
echo "*************************************************************************"
external_IP=$(curl ifconfig.co)
echo $external_IP
echo "*************************************************************************"
выводится "лишняя" информация. Выделено красным. Что это и как это  убрать?
Цитировать
Curl
178.70.3x.xx
*************************************************************************
Curl data assigned to var
*************************************************************************
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100    13  100    13    0     0    174      0 --:--:-- --:--:-- --:--:--   175

178.70.3x.xx
*************************************************************************

ТС не появлялся на Форуме более полугода по состоянию на 22/07/2019 (последняя явка: 09/04/2018). Модератором раздела принято решение закрыть тему.
--zg_nico
« Последнее редактирование: 22 Июля 2019, 14:53:12 от zg_nico »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 7772
  • We were here
    • Просмотр профиля
Re: Bash - извлечение данных из вывода команд
« Ответ #1 : 08 Апреля 2018, 20:31:38 »
man curl
Цитировать
       -s, --silent
              Silent or quiet mode. Don't show progress meter  or  error  mes‐
              sages.   Makes  Curl mute. It will still output the data you ask
              for, potentially even to the terminal/stdout unless you redirect
              it.

🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Alf132

  • Автор темы
  • Новичок
  • *
  • Сообщений: 2
    • Просмотр профиля
Re: Bash - извлечение данных из вывода команд
« Ответ #2 : 09 Апреля 2018, 21:42:32 »
Спасибо.
А почему это происходит при присвоении значения переменной? 
curl ifconfig.co  не выводит лишнего , а external_IP=$(curl ifconfig.co) сопровождается выводом прогресс метра и прочего.

Еще один скрипт ведет себя по разному. Если просто его вызвать выполняется корректно. Если засунуть в планировщик At  результат несколько отличается :
#!/bin/bash
mess=$(curl ifconfig.co)
MAIL_SERVER=smtp.mail.ru
MAIL_PORT=465
MAIL_DATE=`date +"%d %b %Y %T"`
MAIL_FROM="xxxx@mail.ru"
MAIL_TO="xxxx@mail.ru"
MAIL_PASSWORD="xxxxx"
MAIL_SUBJECT="External address $MAIL_DATE"
MAIL_TEXT="External IP : $mess"
MAIL_MESSAGE="Date: ${MAIL_DATE}
\nFrom: ${MAIL_FROM}
\nTo: ${MAIL_TO}
\nSubject: ${MAIL_SUBJECT}
\nContent-Type: text/plain; charset=UTF-8
\n\n${MAIL_TEXT}"

echo -e ${MAIL_MESSAGE} | /usr/bin/msmtp --host=${MAIL_SERVER} --port=${MAIL_PORT} --tls=on --tls-certcheck=off --tls-starttls=off --auth=login --user=${MAIL_FROM} --passwordeval="echo ${MAIL_PASSWORD}" -f ${MAIL_FROM} ${MAIL_TO} -d
При выполнениииз планировщика сообщение отправляется, но без темы. Тема попадает в тело письма.
Цитировать
-e Date: 09 апр 2018 21:36:00
From: xxxx@mail.ru
To: xxxx@mail.ru
Subject: External address 09 апр 2018 21:36:00
Content-Type: text/plain; charset=UTF-8

92.100.8x.xxx

 

Страница сгенерирована за 0.04 секунд. Запросов: 23.