/ / Bashの$ PATHへの自動変更 - bash、path

Bashの$ PATHへの自動変更 - bash、パス

私が作業しているプロジェクトには実行可能なスクリプトがいくつかありますリポジトリに保存します。これらのスクリプトは、実際にはいくつかの開発タスクを自動化するツールであり、私がリポジトリ内にいるときにのみ呼び出すことができ、リポジトリ内のファイルでのみ動作します。

$ 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