O que acontece se eu executar este set
comando destinado ao prompt de comando do Windows dentro do Bash no Linux?
set "PATH=C:\Program Files\Git\bin;%USERPROFILE%\AppData\Local\Programs\Git\bin;%PATH%"
echo %PATH%
No prompt de comando do Windows, isso modifica o PATH de acordo com minhas necessidades para que eu possa executar Git\bin\bash.exe
diretamente bash
dentro do prompt de comando do Windows.
Quando eu o executo dentro do Git Bash no Windows ou no Bash no Linux Ubuntu, nenhum erro é produzido. O comando parece rodar bem, mas nada acontece. Como eu verifico o que aconteceu? É seguro rodar no Linux? Eu desejo que ele não faça nada essencialmente no Linux, mas defina o PATH no Windows.
Para quem está se perguntando:
Por que isso? Preciso de um único script para rodar tanto no prompt de comando do Windows quanto no Bash do Linux, e isso vai ser antes do código inicial que inicia o script em ambos os lugares. Tem a ver com meu Q&A aqui: Como configurar um preBuildSteps.sh
script Bash que roda como parte do processo de pré-compilação no MPLAB X IDE no Windows e no Linux .
O Bash
set
é multifuncional, mas quando usado dessa forma, ele não define variáveis de ambiente – quaisquer argumentos que não sejam opções que ele aceita são, na verdade, colocados nos$1..$9
argumentos do shell (equivalente ao Cmd%1..%9
).Ah, eu descobri. No Linux, parâmetros posicionais
$1
,$2
,$3
, etc. podem ser modificados viaset
comando. Eu esqueci disso. Então,set whatever
simplesmente defina o primeiro parâmetro posicional, acessado via$1
, para a stringwhatever
.Você pode ver isso aqui no Bash no Linux:
Então,
set "PATH=C:\Program Files\Git\bin;%USERPROFILE%\AppData\Local\Programs\Git\bin;%PATH%"
basta definir o$1
parâmetro posicional para a stringPATH=C:\Program Files\Git\bin;%USERPROFILE%\AppData\Local\Programs\Git\bin;%PATH%
:Agora me lembro: escrevi sobre isso há um tempo, aqui: Como alterar argumentos de linha de comando
$1
,$2
etc. no Bash usandoset --
Nota: para o panorama geral, o acima não funciona para minhas necessidades, mas isso funciona: Microchip MPLAB X IDE: configure e execute um script Bash de pré-compilação compartilhado que roda tanto no Windows quanto no Linux como parte do processo de compilação