Sous OS X, vous pouvez ajouter un shell à / etc / shells et le définir en tant que shell par défaut de l'utilisateur. Ainsi, lors de l'ouverture du terminal, ce shell lui est présenté. En outre, vous avez la possibilité d’ouvrir tous les nouveaux onglets de terminal dans le même répertoire que l’onglet actuellement sélectionné. Pour ce faire, vous envoyez le pwd à l’application de terminal via une fonction intégrée dans l’invite, et le nouvel onglet transmettant ces informations à connexion ou bash. Ma question est de savoir comment cette information est transmise à login ou à bash, en tant qu’arguments. Variable Env?

La raison pour laquelle je veux savoir est que les coquilles livrées avec OS X ne montrent pas la cd /path/to/last/dir c'est la première commande exécutée lorsque vous ouvrez un onglet (avec les paramètres dir souhaités) tout en utilisant un shell qui n'est pas livré avec OS X (par exemple, un bash moderne) et j'aimerais trouver un moyen de le répliquer dans ma configuration.

Le terminal a un /usr/local/bin/bash --noediting -i en cours d'exécution et chaque onglet a les éléments suivants en cours d'exécution:

login -pf camdennarzt -bash

et si vous utilisez un shell qui n'est pas livré avec OS X, la première commande est exécutée cd /path/to/last/dir mais il s'exécute à l'invite du type de la commande. Et si vous utilisez un shell inclus, le répertoire est toujours modifié mais la commande ne le fait pas apparaître.

/etc/bashrc_Apple_Terminal semble être lié.

Dans Sierra, cela montre que le shell est lancé en tant que: login -pfl camdennarzt /bin/bash -c 'exec -la bash /usr/local/bin/bash' et le problème est parti, donc cela peut être lié.

Camden Narzt
la source