Mam skrypt 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)
Uruchamiam skrypt bash z wiersza polecenia systemu Windows.
postCloneSetup.sh
Otwiera kolejne okno, a następnie powraca. Okno, które zrodziło, pozostaje otwarte i rejestruje wyjściowy tekst.
Chcę przechwycić dane wyjściowe z okna spawnowanego (tekst zapisany w konsoli) i zwrócić go do wiersza polecenia systemu Windows.
Wolałbym użyć czegoś takiego
$(postCloneSetup.sh) // Linux for capturing output to current context
w wierszu polecenia systemu Windows.
Wolałbym nie modyfikować postCloneSetup.sh. Wiem, że mógłbym napisać do pliku za pomocą
exec &> postCloneSetupLog.log
ale potem muszę poczekać i ręcznie uruchomić
type postCloneSetupLog.log
aby zobaczyć wyjście w konsoli. Nie jest to możliwe do zintegrowania z silnikiem CI, co jest moim celem.
Jak mogę przechwycić dane wyjściowe z utworzonej konsoli w jednym poleceniu?
postCloneSetup.sh
, ale inny „skrypt” uruchamia go z wiersza polecenia systemu Windows. To właśnie dzieje się w silniku CI.