私が作業しているプロジェクトには実行可能なスクリプトがいくつかありますリポジトリに保存します。これらのスクリプトは、実際にはいくつかの開発タスクを自動化するツールであり、私がリポジトリ内にいるときにのみ呼び出すことができ、リポジトリ内のファイルでのみ動作します。
$ cd $REPO
$ ./tools/start-session
$ some-script some arguments
$ other-script other arguments
言い換えれば、 start-session
スクリプトは適切なエントリを $PATH
変数。
私はそれをさらに自動化したいので、 $REPO/tools/start-session
スクリプト。私が達成したいのは、bashが自分のrepo dirに自分自身を検出し、適切なエントリを追加することを自動的に検出させることです。 $PATH
。重要な点は、私には多くの作業コピーがあることです。私のレポとツールはそれぞれのブランチで少し違っています。私は頻繁に作業コピーを移動します。私はシェルから好きなスクリプトを推測しています。
それ、どうやったら出来るの?
私が考えることができるのは、 $PS1
コマンドが完了するたびに変数が実行されるので、どういうわけか $PATH
そこにバッククイックを使用してスクリプトを変更します。
PS1=`update-path`$PS1
しかし、これは正しい方法ではないようです。
回答:
回答№1は1正しいトラックではあるが使用しない PS1
- あなたが欲しい PROMPT_COMMAND
。例えば:
PROMPT_COMMAND="ls"
実行する ls
新しいプロンプトが表示されるたびにこれがあなたの根本的な問題を解決するかどうか、私はそれを正しく理解しているかどうかわからないので、私は言うことができませんでした。
回答№2の場合は0
私は単純なbashスクリプトを作成します - それをcs(セッションの変更)と呼ぶ - ディレクトリと更新パスを変更するので、代わりに
$ cd $REPO
$ ./tools/start-session
$ some-script some arguments
$ other-script other arguments
あなたは〜をします
$ cs $REPO
$ some-script some arguments
$ other-script other arguments
このようなもの:
#!/bin/bash
cd $1
./tools/start-session