Спробуйте:
service --status-all |& grep network
Програми командного рядка можуть друкувати до двох текстових потоків, відомих як стандартний вихід (stdout) та стандартна помилка (stderr). За замовчуванням термінал просто відображає вихід для обох однаково.
Stdout надається число 1, а stderr - число 2. За замовчуванням оператори перенаправлення, як >
, |
і <
застосовуються лише до stdout, номер 1.
|&
труби як stdout, так і stderr разом до процесу на стандартному вхідному потоці (stdin) праворуч, що робить grep
роботу так, як ви очікували.
Я не знаю, чому service --status-all
тут друкувати на stderr, але загалом мати окремий потік stderr дуже корисно, оскільки він дозволяє бачити помилки, навіть коли stdout замовчується.