質問: 「script」コマンドでセッションを記録するときに元の場所にcd 私が持っています script log.txt私のbashプロファイル;これにより、新しいサブプロセスが作成され、セッション全体がlog.txtに記録されます。押すと cmd+t 新しいターミナルを開くには、通常、コマンドが呼び出されたのと同じディレクトリにあるターミナルを開きます。ただし、新しいスクリプトサブプロセスは常にホームディレクトリに戻ります。どういうわけか、現在のディレクトリをこのスクリプトコマンドに「渡す」方法はありますか?
回答: macosのターミナルには、1つのタブで実行されているプロセスから現在の作業ディレクトリを抽出し(/procなどを使用)、それを新しいタブの最初の現在の作業ディレクトリとして使用する機能があるようです。この場合、最初のタブで実行されているプロセスはscriptです。これは、現在の作業ディレクトリを変更する必要がないため、新しいタブが常にそのディレクトリを作成します。 scriptの(一部の)子プロセスの現在の作業ディレクトリのみが実際に変更されていますが、ターミナルアプリケーションはそれに注意を払っていません。これが正しければ、ターミナルアプリケーションの動作方法を変更するか、scriptの動作方法を変更する以外に回避策はありません。