私はこの質問と回答を読みましたが、それが私の問題に完全に適合しているわけではありません。
現在のプロジェクトの1つを起動するスクリプト(cpj)を書いています。私はそれらの約5を持っています。入力すると
$ cpj blah
現在の作業ディレクトリをblahプロジェクトディレクトリ($ PROJDIRに保持)に変更し、emacsclientがそのプロジェクトのメインファイル($ MAINFILEに保持)を開くようにします。
私が引用した質問では、スクリプトを実行しているシェルの環境を直接変更することはできませんが、スクリプトを読み込むことができ、そうすることができます。
これをテストするために、1行のシェルスクリプト(chcwd)を作成しました。
cd $1
コマンドラインから私が行う場合:
$ . chcwd $PROJDIR
私の現在の作業ディレクトリは、必要に応じて変更されます。一方、私のcpjスクリプトから、同じ行がある場合:
. chcwd $PROJECT
シェルの現在の作業ディレクトリは変更されません。私は2つのスクリプト(cpjとchcwd)を実行しているため、2つのシェルを作成していることを理解していますが、希望どおりに実行する方法がありません。誰かが私の目標を達成する方法を教えてもらえますか?