linux - 每次打开 Ubuntu 终端时 Bash 都没有这样的文件或目录

标签 linux bash terminal environment-variables ubuntu-18.04

我是 Ubuntu 和 Linux 终端的新手,出于其他目的,我执行了一些与添加环境变量相关的命令(我猜)如下:

echo "source ~[some path]/setup.bash" >> ~/.bashrc

source ~/.bashrc

但是,在我寻找正确路径的过程中,我多次以错误的路径执行了上述命令才得到正确的路径。现在我认为我想要的环境变量已成功添加,但那些“坏”路径已添加,每次打开终端时,我都会收到所有这些“bash:xxxx没有这样的文件或目录”警告:screen shot 这不是一个严重的错误,但我想知道是否有办法摆脱它们? 非常感谢!

最佳答案

您已经模糊了路径本身,但我设法发现您尝试加载的最后一个文件位于路径 ~Desktop 中,而我认为您的意思是 ~/Desktop。不过,在您的 .profile.bashrc 文件中,我宁愿使用环境变量,并使用 $HOME 作为我的主目录下的路径。

最后,使用 source 绝对没问题(并且符合 POSIX 标准),但由于您的文件名为 .bashrc,因此可以安全地假设您仅针对 bash。为了节省一些输入,bash 将 source 别名为 .(点)。那么,我在 bashrc 文件中写入的内容将是:

. "${HOME}/Desktop/path/to/script.sh"

这确实意味着您最好将附加 echo 命令更改为使用单引号:

echo '. "${HOME}/some/path/setup.sh"'

请记住:在只需要一个斜杠的地方使用多个斜杠(例如 /home/foo///bar////path///file.sh)比省略必需的斜杠(这就是导致问题的原因)更安全/更好。

关于linux - 每次打开 Ubuntu 终端时 Bash 都没有这样的文件或目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58585924/

相关文章:

java - 如何在终端路径中导出带空格的环境变量

c++ - 如何将带有sh文件的文件夹添加到cmake以通过system()调用该文件

c++ - 为什么 C-forkbombs 不像 bash 那样工作?

linux - nmap 或 Aircrack 等程序背后的手动命令

c - 运行 xterm 并使用 c 显示文件内容

linux - "Couldn' t 在 Windows 上的 Ubuntu bash 上找到引用控制台的文件描述符

linux - log rotate 不拆分文件并减少它

bash - 如何在 shell 脚本中使用个人访问 token 访问 GitHub API?

bash - 将 git hook 提交到 repo

regex - sed 删除中间的某些空格