windows - Forskel når du kører 'Cygwin.bat' og hvis du bare kører 'bash' (.bash\_profile vs .bashrc)

Indlæg af Hanne Mølgaard Plasc

Problem



Når jeg kører Cygwin.bat har jeg fået alle mine brugerdefinerede ting fra .bash\_profile, men når jeg bare kører bash, arbejder ingen af ​​mine ting fra .bash\_profile og jeg Jeg har lige kablet præfiks som root@comp:/mnt/c/cygwin64# (som min nuværende dir)


Er der nogen måde at opnå det samme resultat, når du kører bash som jeg fik, da jeg kørte Cygwin.bat


indholdet af Cygwin.bat er:


@echo off

C:
chdir C:Toolscygwin64in

bash --login -i

Bedste reference


Som påpeget af @matzeri i kommentaren påberåber cygwin.bat bash med indstillingen --login, som skaber en interaktiv login shell . Og bash uden indstillingen --login opretter en interaktiv skal , som ikke er en login shell .


Ifølge bash man side: [28]



  Når bash er påkaldt som en interaktiv login shell eller som en ikke-interaktiv
  shell med indstillingen --login, den læser og udfører først kommandoer fra
  filen /etc/profile, hvis den pågældende fil eksisterer. Efter at have læst den fil, den
  ser efter ~/.bash\_profile, ~/.bash\_login og ~/.profile i den rækkefølge og
  læser og udfører kommandoer fra den første , der findes og kan læses.
  Alternativet --noprofile kan bruges, når skallen er begyndt at hæmme dette
  opførsel.

  
  Når en interaktiv skal , der er ikke en login skal startes, læser bash
  og udfører kommandoer fra ~/.bashrc, hvis den pågældende fil eksisterer. Dette kan være
  hæmmet ved at bruge indstillingen --norc. Filindstillingen --rcfile vil tvinge
  bash for at læse og udføre kommandoer fra fil i stedet for ~/.bashrc.



Min ~/.bash\_profile har kun en linje:


source ~/.bashrc


og jeg sætter alt forvirret på ~/.bashrc.