Сценарий таков, что мне нужна моя основная команда для запуска в текущей оболочке, это требуется или теряет все окружение и т. Д.
Итак, я не могу просто запустить свой канал следующим образом:
#command-line 1
mainCommand | (
...subshell commands...
) &
#this wait works, but main command is in child process
wait $!
Мне нужно запустить основную команду в текущей оболочке:
#command-line 2
mainCommand &> >(
...subshell commands...
) &
#this wait is waiting for mainCommand, not subshell
wait $!
Однако в командной строке 2 это всего лишь одна команда, и я не могу просто отправить ее в фоновый режим,только фоновая оболочка должна перейти в фон, тогда я могу получить ее PID.
Как разрешить
- Основная команда будет в текущей оболочке
- И 'wait'команда на самом деле ждет подоболочки?
У меня есть решение для файла блокировки, но я предпочитаю не использовать файл, так как весь скрипт выполняется непрерывно, а запись / изменение файла снова и снова напоминает проникновение в файловую систему.