无法从 `~/bin` 执行 shell 脚本

无法从 `~/bin` 执行 shell 脚本

我正在学习编写 shell 脚本linuxcommand.org 上的本教程。 它说 -

大多数现代 Linux 发行版都鼓励这样一种做法:每个用户都有一个特定的目录来存放他/她个人使用的程序。这个目录称为 bin,是你主目录的一个子目录。

我试过了。但我得到了以下错误-

foobar: command not found

在该页面的后面,还提到:

在某些发行版上,尤其是 Ubuntu,您需要打开一个新的终端会话,然后才能识别新创建的 bin 目录。

也就是说 ubuntu 支持这个功能,但是为什么不起作用呢?

我在使用 Ubuntu 12.04 LTS。

答案1

当您登录或启动新 shell 时,会解析一些脚本。具体解析哪些脚本取决于您使用的 shell(例如 ksh、csh、tsch、bash、dash、pinosh 等)以及它是否是登录 shell。

如果您使用 Ubuntu 的默认设置,那么它可能会包含以下内容:

# 设置 PATH 以使其包含用户的私有 bin(如果存在)
如果 [ -d "$HOME/bin" ] ; 然后
    PATH="$HOME/bin:$PATH"

换句话说,如果 ~/bin/ 已经存在,则将其添加到搜索路径。
如果不存在,则没有理由每次都尝试搜索该位置。所以不要添加它。

这意味着您必须创建 ~/bin/ 然后启动一个新 shell,或者创建它并手动向其中添加路径。


至于“大多数现代 Linux 发行版都鼓励这样做”。早在 1991 年,当我在运行 ESIX 的服务器上获得第一个 unix 帐户时,就已经鼓励这样做了。但今天仍然如此。

相关内容