2 votes

comment démarrer un Shell interactif avec une configuration spéciale

Je veux lancer un zsh interactif (sur cygwin) avec une configuration spécifique au projet :

  1. source /etc/profile
  2. source ~/.profile
  3. source $PROJECT_HOME/Setup.zsh
  4. devenir interactif

Je suis allé jusqu'à l'étape 3 mais ensuite le Shell s'est terminé.

J'ai déjà fait ce genre de chose auparavant mais j'ai oublié comment je l'ai fait. J'ai essayé de le chercher sur Google mais je n'ai rien trouvé. C'est sans doute parce que je n'ai pas utilisé les bons termes de recherche.

添加物 $PROJECT_HOME/Setup.zsh a ~/.profile n'est bien sûr pas une solution, car l'idée est d'avoir plusieurs icônes de démarrage sur le bureau de Windows pour lancer des shells pour un projet parmi d'autres.

2voto

James Mertz Points 390

Faites en sorte que vos raccourcis ressemblent à :

env PROJECT_HOME=~/projects/this zsh

env PROJECT_HOME=~/projects/that zsh

Recherche de sources d'approvisionnement $PROJECT_HOME/Setup.zsh fonctionnera bien maintenant.

0voto

Vagif Abilov Points 2429

Zsh ne supporte pas cela très bien. La seule façon que je connaisse pour faire cela est de remplacer temporairement $ZDOTDIR dans un répertoire temporaire et placez un .zshrc là-dedans qui peut charger les fonctions que vous voulez. Voici un exemple complet :

#!/usr/bin/zsh

dir=`mktemp -d /tmp/adevXXX`

# Preload the shell with all of the shell functions defined in
# build/envsetup.sh.
cat >$dir/.zshrc <<EOF
source $HOME/.zshrc
source build/envsetup.sh
EOF
ZDOTDIR=$dir zsh

rm -r $dir

0voto

user1934428 Points 333

Vous n'avez pas dit comment vous définissez ce que vous appelez plusieurs icônes de démarrage et comment exactement vous démarrez votre terminal avec le Shell. Par exemple, sur ma plateforme, j'utilise minnty et vous pouvez, pour une certaine icône de bureau, mettre dans les propriétés une commande de démarrage du type

C:\cygwin64\bin\mintty.exe -s 101,26 -e /usr/bin/dash -c "PROJECT=25 /usr/bin/zsh -i -l"

et dans votre .zshrc, vous décidez de la valeur du paramètre $PROJECT Les paramètres spécifiques du projet à charger.

Dans cette approche, j'utilise un Shell intermédiaire (dans mon cas : dash, car il se charge rapidement) pour configurer la variable d'environnement et finalement appeler zsh en tant que login interactif Shell.

La même approche devrait également fonctionner avec d'autres émulateurs de terminal, tels que ConEmu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X