Я делаю сценарий, который я начинаю с bash.exe
из Cygwin для Windows:
C:\bash.exe my_script.sh
Это меняет мой Python Virtual Env в зависимости от некоторых условий. Для тех, кто знает Virtualenv, мне нужно использовать «workon.bat», и единственный известный мне способ выполнения пакетного скрипта - это следующий:
...
cmd /K "workon.bat" "$required_venv"
...
Это работает, но я сейчас в новом экземпляре cmd.exe
запущенном из предыдущего. Доказательство: печать exit
вернет меня к этому:
C:\bash.exe my_script.sh *ENTER*
(venv) C:\
(venv) C:\exit *ENTER*
C:\
Фактически, каждый раз, когда я буду запускать этот скрипт, я буду в новом экземпляре:
cmd.exe
cmd.exe
cmd.exe
cmd.exe
...
Как решить эту надоедливую рекурсивную ситуацию? Одним из решений может быть обнаружение того, что я запущен в cmd, и выход. Я был бы идеальным для выполнения пакетного workon.bat, оставаясь внутри cmd.