Это сообщение "Готово" вызвано тем, что командная оболочка все еще находится под контролем задания:
$ sleep 10 &
[1] 660
$ jobs
[1]+ Running sleep 10 &
(time passes)
$
[1]+ Done sleep 10
Вы можете просто удалить все задания из управления заданиями с помощью disown
(a)
$ sleep 100 &
[1] 3804
$ jobs
[1]+ Running sleep 100 &
$ disown
$ jobs
$
Я не знаю , метода откреститься работой прямо с ее началом (б), так что я предлагаю , чтобы вы просто поставить disown
ваш Bashrc, сразу после звуковой команды. Однако это отменит все рабочие места - я не знаю, если это требуется. В противном случае вы можете использовать disown %aplay
.
(а) man bash
отречься [-ar] [-h] [спецификация работы ...]
Без параметров каждая спецификация заданий удаляется из таблицы активных заданий. Если jobspec отсутствует и не указан ни -a, ни -r, используется оболочка для текущего задания. Если задана опция -h, каждая спецификация заданий не удаляется из таблицы, а помечается так, что SIGHUP не отправляется заданию, если оболочка получает SIGHUP. Если спецификация заданий отсутствует и не указана ни опция -a, ни опция -r, используется текущее задание. Если спецификация заданий не указана, опция -a означает удалить или отметить все задания; опция -r без аргумента jobspec ограничивает выполнение операций заданиями. Возвращаемое значение равно 0, если в задании не указано допустимое задание.
(b) Однако в Z Shell zsh
это легко:
zsh$ sleep 10 &!
zsh$ jobs
zsh$