Je suis sur un poste de travail Linux dans un réseau, avec un "ancien" distributeur. De plus, le shell de connexion est imposé à CSH. J'ai déjà demandé aux administrateurs s'il serait possible de passer à un autre (j'aimerais bien avoir bash), mais c'était un non-aller ...
Par conséquent, je lance bash depuis la ligne de commande, en tant que shell interactif sans connexion (en fait, j'utilise gnome et gnome-terminal avec un profil qui exécute / bin / bash -i en tant que commande). Beaucoup, si pas tous mes scripts utilisent bash, je les lance en appelant bash avec un script. C'est désordonné mais ça fonctionne.
J'ai .cshrc avec des variables d'environnement, des alias et des options pour csh définis dans un fichier .login et des fichiers .cshrc dans mon $ HOME. J'ai aussi un .bashrc / .bash_profile (qui redirige vers .bashrc s'il s'agit d'un shell interactif) /. Bash_aliases avec quelques autres variables et d'autres identiques. Lorsque j'exécute le shell bash, j'hérite des variables d'environnement définies dans mon fichier .login. Je voudrais ignorer tout ce qui est mis en place dans celui-ci lorsque je lance bash.
J'aimerais savoir s'il existe une option pour exécuter bash, en ignorant toutes les autres variables d'environnement définies précédemment à partir de ma session de connexion CSH lorsque j'exécute mon shell BASH.
Avez-vous des idées?
Je vous remercie
Vous voulez exécuter bash en tant que shell non interactif, à l'intérieur de CSH, avec des variables bash définies dans .bash_profile, n'est-ce pas?
Vous pouvez donner un coup de feu:
mais je ne peux pas le tester.
la source
./bash --login
celasource .bash_profile
man bash
. Si vous souhaitez simplement supprimer des variables de l'environnement, simplementunset VARNAME1 VARNAME2
.env | awk -F= '/^\w/ {print $1}' | xargs
, puis supprimez ceux qui sont importants et défaites.