Этого не должно быть. Когда вы запускаете команду в фоновом режиме, bash обычно просто печатает номер задания и pid (см. Ниже), а затем возвращается в командную строку.
Единственная причина, которую я знаю об этом, заставляет bash оставить вас с новой строкой в этой ситуации, если ваша команда на самом деле не существует, так как она каким-то образом выдаст сообщение об ошибке после печати PS1:
$ nonexistant_command &
[1] 13856
$
nonexistant_command: command not found
<empty line with blinking cursor here>
Какой бы ни была причина, нажатие клавиши ввода в этой пустой строке должно напечатать новую строку с вашим обычным приглашением (и, возможно, сообщением о том, что задание, которое вы только что создали, завершено; см. Ниже).
Дополнительный вывод, который вы видите - bash, рассказывающий о текущих фоновых заданиях:
Во-первых, он сообщает вам текущий номер задания любого вновь созданного фонового процесса вместе с его pid, вот так:
$ some_command &
[1] 1234
Это означает, что команда some_command
теперь выполняется с pid 1234 в качестве задания 1.
Как только фоновое задание завершится, bash уведомит вас об этом в следующий раз, когда напечатает командную строку (будь то из-за того, что вы породили другой фоновый процесс, выполнили команду на переднем плане или просто нажали enter с пустой командной строкой), напечатав сообщение как это:
[1] Done some_command
Это означает, что задание с номером 1, которое запускало some_command
, теперь завершено.
Чтобы узнать, какие фоновые задания отслеживает в настоящее время bash, вы можете использовать встроенные jobs
следующим образом:
$ jobs
[1] Running some_command &
[2] Running some_other_command &
Чтобы вывести работу на передний план, вы можете использовать fg
:
$ fg 2
some_other_command
Для получения дополнительной информации об этом, попробуйте help jobs