我正在尝试使用 shell 脚本将新目录“foo”导出到 $PATH。目前,我使用了一个 shell 脚本 install.sh,它导出的路径如下:
<install.sh>
#! /bin/sh
echo export PATH=$PATH:<path/foo> >> ~/.bashrc
出于某种原因,如果我现在尝试显示 ~/.bashrc 文件,我会根据打印方式获得不同的输出。例如,通过终端访问它将vi ~/.bashrc
显示没有我导出的行的文件。但是,如果我通过 shell 脚本(相同的命令但在 .sh 文件中)加载它,则会显示我导出的行。除了通过这种方法,我没有其他方法可以看到这一行。我已经使用不同的 shebang(bin/sh vs bin/bash)和带/不带 sudo 检查了该命令的不同版本。我添加的行存储在哪里?我已经检查了 /etc/skel/.bashrc 和 ~/.bashrc。
(我知道每次调用脚本时都会添加一条新的导出行。使用 Ubuntu 22.04.2 LTS)。
编辑:
使用 sudo 脚本调用install.sh
脚本会将 $PATH 变量设置为 root,而以用户身份调用它会将用户 $PATH 变量返回为用户,从而导致了这种行为。