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


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Запуск задачи (jobs) в конвеере (pipe)  (Прочитано 316 раз)

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

Оффлайн vento1980

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Запуск задачи (jobs) в конвеере (pipe)
« : 03 Апрель 2018, 13:49:40 »
Всем добрый день!

Есть вопрос по запуску задач (jobs) в конвеере (pipe).

Есть небольшой скрипт test.sh:
#!/bin/bash

sleep 5 &
echo 'done'

exit 0

В нем две основные команды. Первая эмулирует "сложную работу" - это "sleep 5", причём запускается она как задача (job). Вторая команда - информационная "echo 'done'".

Тест1: Если запустить скрипт с измерением параметров вермени ("time") выполнения:
$ time ./test.sh
done

real 0m0.005s
user 0m0.000s
sys 0m0.000s
Здесь мы видим, что скрипт выполнился быстро (время не затрачено на команду "sleep 5 &").

Тест2: Если запустить тот же скрипт, но в конвейере:
$ time ./test.sh | tail
done

real 0m5.012s
user 0m0.000s
sys 0m0.000s
то видим, что время, затраченое на конвейер равно времени выполнения команды "sleep" и "echo". Т.е. фоновая задача держит весь конвейер.

Вопрос: как запустить команду "sleep" (фоновую задачу) в крипте "test.sh", чтобы она не "держала" весь конвейер?

Заранее спасибо!

Оффлайн ALiEN175

  • Старожил
  • *
  • Сообщений: 2060
  • X-9000SC
    • Просмотр профиля
Re: Запуск задачи (jobs) в конвеере (pipe)
« Ответ #1 : 03 Апрель 2018, 15:24:49 »
вам надо перенаправить весь вывод команды куда-нибудь. В файл, в null, итд
#!/bin/bash

sleep 5 &> /dev/null &
echo 'done'

exit 0
M5A78L-M LX3 : AMD FX-4330 : 16 Gb RAM : AMD Radeon R7 260x
Samsung N150 : Intel Atom N450 : 2 Gb RAM : Intel GMA 3150

Оффлайн vento1980

  • Автор темы
  • Новичок
  • *
  • Сообщений: 29
    • Просмотр профиля
Re: Запуск задачи (jobs) в конвеере (pipe)
« Ответ #2 : 03 Апрель 2018, 15:29:43 »
Работает!

Ещё раз спасибо!

 

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