@echo off
Como os scripts de shell não fazem eco aos comandos por padrão, um equivalente é desnecessário.
if exist %SYSTEMROOT%\py.exe (
cmd /k C:\Windows\py.exe -3.5 -m pip install --upgrade -r Requirements.txt
exit
)
O py
launcher não é usado em sistemas Linux. Em vez disso, chame pip3
. O equivalente do pip3
instalado pelo sistema (ou seja, instalado usando o gerenciador de pacotes) seria /usr/bin/pip3
:
if [ -x /usr/bin/pip3 ]
then
/usr/bin/pip3 install --upgrade -r Requirements.txt
exit
fi
No entanto, talvez seja melhor usar qualquer pip3
disponível:
if command -v pip3 > /dev/null
then
pip3 install --upgrade -r Requirements.txt
exit
fi
command -v
pode ser usado para verificar se um programa está no PATH
(e imprime o caminho para esse programa, que descartamos usando > /dev/null
). Você também pode verificar por python3
e executar python3 -m pip
.
python --version > NUL 2>&1
if %ERRORLEVEL% NEQ 0 goto nopython
cmd /k python -m pip install --upgrade -r requirements.txt
goto end
:nopython
echo ERROR: Git has either not been installed or not been added to your PATH
:end
pause
Não temos goto
em scripts de shell.
Um equivalente seria algo como:
python --version 2>&1 > /dev/null # Note the order of redirections
if [ $? != 0 ] # $? is like ERRORLEVEL
then
echo ERROR: Git has either not been installed or not been added to your PATH
else
python -m pip install --upgrade -r requirements.txt
fi
O que seria mais legível, IMO, como:
if python --version 2>&1 > /dev/null
then
python -m pip install --upgrade -r requirements.txt
else
echo ERROR: Git has either not been installed or not been added to your PATH
fi
Nota lateral: Git não foi instalado? O.o