W jaki sposób funkcja bash
sprawdza, czy działa w wirtualnym języku Python?Skąd wiadomo, że funkcja powłoki działa w ramach virtualenv?
dwóch podejść, które przychodzą do głowy to:
[[ "$(type -t deactivate)" != function ]]; INVENV=$?
lub
[[ "x$(which python)" != "x$VIRTUAL_ENV/bin/python" ]]; INVENV=$?
(Uwaga: chcąc $INVENV
być 1 czy jesteśmy wewnątrz virtualenv, a 0 w przeciwnym razie, to co wymusza wcześniejsze testy wstecz.)
Czy jest coś mniej hacky?
Istnieje również 'command -v', wbudowana powłoka. – phk