スクリプトでフィッシュシェルセッションの$ PATHを一時的に設定します。

スクリプトでフィッシュシェルセッションの$ PATHを一時的に設定します。

$PATH一時開発環境を設定できるように、変数の前にいくつかのディレクトリを一時的に追加したいと思います。他のフィッシュセッションで見たものは変更したくありません。

setup-env.fishだから私は正しいパスを先頭に追加して優先順位を持つスクリプトが欲しいです$PATH

私の簡単なテストは

set -gx tool_dir "/home/jesse/sandbox/tools"
set PATH "$tool_dir/language/bin" $PATH
echo "Evnironment Set up"

私はこれらのディレクトリが存在することを確認しました。シェルを開いてスクリプトを実行すると、ディレクトリecho $PATHは表示されません。

絶えずディレクトリを追加し、set -U fish_user_paths path $fish_user_pathsそれをグローバル$PATH変数に追加する方法があることを知っています。しかし、私はこれをしたくありません。他のツールを使用したい場合は、システム変数をあまり調整したくありません。必要に応じて、まず$PATHシェルを追加して閉じたいと思います。私はいくつかのFishドキュメントと変更に関するいくつかのgithubの問題を読み、$PATHいくつかの変数がFishによって異なる方法で処理されるという事実を収集しました。したがって、ここで他のものが欠けているかどうかはわかりません。

シェルでこのコマンドを実行するとうまくいきますが、スクリプトでより多くのことをしたくないので、すべての内容を入力したくありません。

XUbuntu 16.04でFish 2.7.1を使用しています。

ベストアンサー1

考える範囲は現在のシェル内でのみ変更できますfish_user_paths。このフィッシュセッションを終了しても、この変数の一般的な値は影響を受けないと思います。

set -g fish_user_paths "$tool_dir/language/bin" $fish_user_paths

おすすめ記事