Я делаю сценарий, который я начинаю с bash.exeCygwin для 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.
К сожалению, это не работает, потому что, если он закрывает новую оболочку, он также закрывает виртуальный venv, верно? : (