У меня есть сценарий bash postCloneSetup.sh:
script_path=$( cd "$(dirname "${BASH_SOURCE[0]}")" ; pwd -P )
cd "$script_path"
printf 'Updating submodules for project\r\n'
git submodule update --init --recursive
printf '\r\nInitializing git hooks\n'
./GitHooks-BackEnd/init-hooks
printf '\r\nInitializing Submodule1\r\n'
$(./Submodule1/postCloneSetup.sh)
printf '\r\nInitializing Submodule2\r\n'
$(./Submodule2/postCloneSetup.sh)
Я запускаю скрипт bash из командной строки Windows.
postCloneSetup.sh
Он открывает другое окно и затем возвращается. Окно, которое оно породило, остается открытым и записывает выводимый текст.
Я хочу захватить вывод из появившегося окна (текст, записанный на консоль) и вернуть его в командную строку Windows.
Я бы предпочел использовать что-то вроде
$(postCloneSetup.sh) // Linux for capturing output to current context
для командной строки Windows.
Я бы предпочел не изменять postCloneSetup.sh. Я знаю, я мог бы это записать в файл с
exec &> postCloneSetupLog.log
но тогда я должен ждать и вручную запустить
type postCloneSetupLog.log
чтобы увидеть вывод в консоли. Это невозможно интегрировать в движок CI, что является моей целью.
Как я могу захватить вывод из порожденной консоли в одну команду?