Это возможно, сценарий ниже запустится some_command
и передача каждой строки в файле, и запускает их в фоне, не блокируясь:
cat input | while read param; do
some_command $param &
done
Вы можете добавить следующее в свою командную строку, чтобы прекратить использование режима мониторинга.
set + m
Если вам действительно понадобятся функции ctrl-z позже, вы можете просто набрать 'set -m', чтобы включить мониторинг для этого сеанса.
Из man bash . Обратите внимание, что это для '-m', где «+ m» переключает этот параметр на отключение.
set [+abefhkmnptuvxBCEHPT] [+o option] [arg ...]
....
-m
Monitor mode. Job control is enabled. This option is on by default for interactive
shells on systems that support it (see JOB CONTROL above). Background processes
run in a separate process group and a line containing their exit status is printed
upon their completion.
В качестве последней попытки вы можете вручную скомпилировать версию bash без флага "--enable-job-control". Вот краткое руководство по установке от GNU. Если вы решите пойти по этому пути, НЕ заменяйте / bin / bash на тот случай, если фоновые процессы запускаются через bash, ожидая управления заданиями. Вместо этого создайте /bin/bash.alt или другой файл. Вашу оболочку по умолчанию можно изменить на эту альтернативную, запустив usermod или отредактировав / etc / passwd от имени пользователя root.
Добавьте trap "" SIGTSTP
в свой скрипт. Он перехватит сигнал и проигнорирует его.
#!/bin/bash
trap "" SIGTSTP
watch date
Или я что-то пропустил, и эта функция может быть полезной?
Чтобы ответить на эту часть вопроса: Комбинация C-z / fg
необходима для моего рабочего процесса vim. Например, я предпочитаю C-z > git коммит
> fg
использованию git-обёрток изнутри vim.
C-z помогает рассматривать оболочку как IDE, что соответствует принципу "do one thing". (Это вместо "редактор как IDE").
stty susp undef
отключит инициализированный клавиатурой сигнал приостановки для большинства программ, однако команды типа vim
и emacs
, которые имеют специфическую привязку для Ctrl-Z, придется перенастраивать по отдельности.
Вы можете добавить эту команду stty к своему ~/.bash_profile
или ~/.profile
, выйти из системы, снова войти в систему.