
OS X では、/etc/shells にシェルを追加して、それをユーザーのデフォルト シェルとして設定できます。これにより、ユーザーがターミナルを開いたときにそのシェルが表示されます。さらに、現在フォーカスされているタブと同じディレクトリにすべての新しいターミナル タブを開くオプションがあります。これは、プロンプトに埋め込まれた関数を介して pwd をターミナル アプリに送信し、新しいタブがその情報をログインまたは bash に渡すことによって実現されます。私の質問は、この情報が引数としてログインまたは bash に渡される方法です。環境変数でしょうか?
私が知りたい理由は、OS X に同梱されているシェルでは、cd /path/to/last/dir
OS X に同梱されていないシェル (最新の bash など) を使用しているときにタブを開いたときに最初に実行されるコマンドが表示されないことです (希望どおりの dir 設定を使用)。これを自分の設定で再現する方法を見つけたいのです。
ターミナルには 1 つが/usr/local/bin/bash --noediting -i
実行されており、各タブには次のものが実行されています。
login -pf camdennarzt -bash
OS X に同梱されていないシェルを使用している場合、最初に実行されるコマンドは、cd /path/to/last/dir
コマンドが入力されたときのようにプロンプトで実行されます。また、同梱のシェルを使用している場合、ディレクトリは変更されますが、それを実行するコマンドは表示されません。
/etc/bashrc_Apple_Terminal
関連があるようです。
Sierra では、シェルが次のように起動されていることが示され、login -pfl camdennarzt /bin/bash -c 'exec -la bash /usr/local/bin/bash'
問題はなくなったため、関連している可能性があります。