Скрыть все выходные данные фонового процесса

Скрыть все выходные данные фонового процесса

У меня есть куча команд zshrc, которые вызывают другую команду в фоновом режиме. Фоновая команда — это псевдоним программы преобразования текста в речь (я использую ее, чтобы давать мне звуковые подсказки, когда процессы, такие как тестовые наборы и патчи, завершаются).

В настоящее время он вызывается следующим образом:

alert "Message for this current task" &

Все довольно просто.

Однако при использовании этого формата я получаю следующий вывод:

$ alert "Foobar" &
[1] 85072
$
[1]  + done       alert "Foobar"
$

Я хочу подавить вывод pid и doneсообщения. Как это сделать?

Я попробовал alert "Foobar" > /dev/null &, но это только перенаправляет вывод оповещения в devnull.

Я пытался alert "Foobar" & > /dev/null, но это привело к неожиданным плохим последствиям, которые я не до конца понимаю.

Как использовать &«тихий» режим?

решение1

Чтобы избавиться от сообщений управления заданиями, можно использовать подоболочку:

$ alias alertme="xmessage Alert!"
$ ( alertme & )
$

Если ваша команда также выводит какие-либо данные в STDOUT и/или STDERR, направьте их в /dev/null:

$ ( alertme > /dev/null 2>&1 & )

решение2

Немного более аккуратная версия другого ответа здесь:

(&>/dev/null alertme &)

Связанный контент