我只想添加一个路径~/.bashrc
:
export PATH="$Home/gg/gamit/bin:$Home/gg/kf/bin:$Home/gg/com:$PATH"
但是当我使用时echo $PATH
显示为:
/gg/gamit/bin:/gg/kf/bin:/gg/com:/home/sandypuja/bin:/home/sandypuja/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
但我需要它看起来像
/home/sandypuja/gg/gamit/bin:/home/sandypuja/gg/kf/bin:/home/sandypuja/gg/com:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
sandypuja
我的系统名称在哪里。
我该如何纠正这个问题?
Shell 和环境变量区分大小写(如steeldriver 所说)。
Home
不是同一个变量HOME
。HOME
环境变量包含您的主目录的路径。该Home
变量通常不存在;这个名字没有什么特别之处Home
。当未定义变量时,对其执行参数扩展会产生空字符串(如vanadium 所暗示的),这就是您所看到的。
替换
$Home
为$HOME
应该可以解决问题:请注意,您通常不应设置环境变量,尤其是
PATH
, in~/.bashrc
,因为:bash
shell 提供,因此它们在许多重要上下文中不可用,包括不是从bash
.bash
shell,因此当您从另一个交互式 bash shell 启动时,子 shell 将再次修改路径。因此目录名称将被多次添加。性能影响可以忽略不计,但是当您检查变量的值时可能会非常混乱。如果您想设置或修改环境变量,例如
PATH
通过编辑由 shell 提供的文件,您可以使用~/.profile
而不是~/.bashrc
.(我说“特别
PATH
”是因为PATH
在新值中包含旧值是很常见的,就像你正在做的那样,当这样做时,~/.bashrc
它会产生上面#2中描述的烦恼。)