REMARQUE: veuillez consulter ma deuxième modification ci-dessous pour une mise à jour sur le problème.
Cygwin fonctionnait bien pour moi jusqu'à la semaine dernière. Maintenant, .bashrc ne devient pas sourcé. Je dois avoir installé quelque chose ou changé quelque chose, mais je ne me souviens pas exactement de la cause du problème. Lorsque je démarre Cygwin, je suis dans ma maison Windows et aucun de mes alias ne fonctionne. Je dois source manuellement .bashrc. Ce qui suit est mon Cygwin.bat:
@echo off
C:
chdir C:\cygwin\bin
set CYGWIN=tty notitle glob
bash --login -i
Des idées?
EDIT: Mon .bash_profile contient les éléments suivants,
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
EDIT2: IMPORTANT! Lorsque j'ai démarré Cygwin, il démarre dans mon dossier d'accueil Windows. J'ai essayé de mettre mon .bash_profile et .bashrc dans ce dossier et ils ont été correctement achetés! Cela signifie que le problème a été réduit à déterminer pourquoi Cygwin démarre dans le dossier de base Windows et non dans le dossier de base Cygwin normal.
EDIT3: Résultats de l'exécution de grep Gulshan / etc / passwd /
$ grep Gulshan /etc/passwd
Administrator:unused:500:513:U-Gulshan-HP\Administrator,S-1-5-21-1235613160-4193452482-2032876723-500:/home/Administrator:/bin/bash
Guest:unused:501:513:U-Gulshan-HP\Guest,S-1-5-21-1235613160-4193452482-2032876723-501:/home/Guest:/bin/bash
Gulshan:unused:1000:513:U-Gulshan-HP\Gulshan,S-1-5-21-1235613160-4193452482-2032876723-1000:/home/Gulshan:/bin/bash
echo $HOME
s'imprime?/cygdrive/c/Users/foo
plutôt queC:\Users\foo
)HOME=/home/yourname bash -l
à l'invite du terminal? Si j'ai raison, cela devrait vous donner un shell fonctionnant correctement. Notez qu'il s'agit d'un diagnostic, ou au mieux d'une solution de contournement, pas d'une solution; nous devons encore comprendre pourquoi votre$HOME
erreur est en premier lieu. Le problème racine est le paramètre incorrect de$HOME
; bash se comporte correctement.Réponses:
La FAQ Cygwin explique comment
$HOME
est défini:Ma meilleure supposition est que vous avez foiré votre
/etc/passwd
fichier. (Le répertoire de base de Windows ne l'est%USERPROFILE%
pas%HOME%
.)Que signifie
grep USERNAME /etc/passwd
imprimer (remplacerUSERNAME
par votre nom d'utilisateur)?la source
set HOME=
? L'utilisation du panneau de configuration système est plus susceptible de fonctionner, mais un redémarrage peut être nécessaire même dans ce cas.Si vous avez un .profile ou .bash_profile, qui provient de shells de connexion, et vous obtenez un shell de connexion depuis que vous avez réussi
--login
. Si vous sourcez .profile, bash ne source pas .bashrc.J'essaierais de mettre:
dans votre .profile, voyez si cela aide. Votre .bashrc doit toujours provenir, comme d'habitude, d'autres invocations de shell sans connexion.
Et ne passez pas
-i
à bash; vous n'en avez pas besoin. Bash sorte de hacks qui, prétend, vous avez donné-i
sur la ligne de commande.la source
-i
n'est pas nécessaire. Merci.-i
sur la ligne de commande. Essayez d'ouvrir une fenêtre de shell bash, alorsecho $-
, vous devriez voiri
(parmi d'autres drapeaux)J'ai rencontré le même comportement - probablement après avoir installé git (Windows).
Dans le paramètre système, j'ai trouvé la variable utilisateur HOME = C: \ Users \ me et la réinitialiser à HOME = D: \ home
la source