gpt4 book ai didi

macos - 在 fish 启动时添加到 $PATH 的相对路径

转载 作者:行者123 更新时间:2023-12-03 08:11:23 33 4
gpt4 key购买 nike

我想在 fish 启动时将 ./bin 目录(相对于当前 shell 目录)添加到 $PATH 。请注意 fish是一个 shell 。

echo $PATH
set PATH ./bin $PATH
echo $PATH

如果我将这些行放在 ~/.config/fish/config.fish 内shell 将回显相同的路径集合。绝对路径已正确添加。

如果我打开 shell 并输入相同的 set PATH ./bin $PATH在一些包含 bin 的目录中它添加成功。但是当没有 bin 时在当前目录中,它向我显示了一个错误。
set: Could not add component ./bin to PATH.
set: Value too large to be stored in data type

我在 OS X Lion 上运行 fish 1.23.1。

最佳答案

我找到的最好方法 持续添加路径到您的 $PATH

set -U fish_user_paths $fish_user_paths ~/path/name

这前置于 $PATH .并且由于它是持久的,所以路径停留在 $PATH在 shell 重新启动时。

这比在您的 config.fish 中放置命令更有效修改您的 $PATH ,因为与每次 shell 重新启动时运行相比,它只运行一次。

变量 fish_user_paths is intended to be set by the user 1,如 ridiculousfish 所述, fish 的维护者。

为方便起见,考虑创建一个fish函数:2
# ~/.config/fish/functions/add_to_path.fish
function add_to_path --description 'Persistently prepends paths to your PATH'
set --universal fish_user_paths $fish_user_paths $argv
end

并将其用作:
$ add_to_path foo bar  # Adds foo/ and bar/ to your PATH

笔记
  • 在该页面上,作者给出了示例 set -U fish_user_paths ~/bin .这会覆盖 fish_user_paths单个值为 ~/bin .避免丢失 fish_user_paths 中设置的现有路径,请务必包含 $fish_user_paths除了添加的任何新路径(如我的回答所示)。
  • 我的点文件包含一个稍微高级的版本,它跳过添加重复项 https://github.com/dideler/dotfiles/blob/master/.config/fish/functions/add_to_user_path.fish
  • 关于macos - 在 fish 启动时添加到 $PATH 的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7064053/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com