1 votes

Dans iTerm, pourquoi la commande d'un shell ne prend-elle pas en compte les éléments de mon $PATH ?

J'ai un script dans mon ~/.bin qui modifie l'arrière-plan d'iTerm avant le démarrage d'une session SSH (comme indiqué en détail dans la section aquí , script légèrement modifié à partir de cette version ).

Si je démarre une session de connexion normale et que j'exécute ma commande, sshb servername , il fonctionne parfaitement ! L'image de fond se charge et la session SSH démarre.

Cependant, si je configure un profil pour démarrer une session à l'aide de cette même commande, le système s'interrompt et indique qu'il ne trouve pas de sshb . Si je fais mon commandement ~/.bin/sshb servername il exécute la commande, mais indique qu'il ne trouve pas le fichier ImageMagick convert utilisée dans ce script.

Il semble que la commande shell ne soit pas au courant de mes $PATH . Je suppose que je pourrais trouver où convert et modifier le script pour utiliser le chemin complet, mais cela semble traiter les symptômes et non le problème. Existe-t-il un moyen de faire en sorte que l'interpréteur de commandes charge mes variables d'environnement avant d'exécuter cette commande ?

1voto

Fuzzy Purple Monkey Points 702

Les variables d'environnement telles que PATH et TERM sont normalement héritées de l'interpréteur de commandes. Lorsque vous exécutez le script directement, elles sont désactivées.

Vous pouvez exécuter le script en tant que processus enfant d'un shell de connexion en définissant la commande comme suit bash -lc "~/.bin/sshb servername" .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X