0

我编写了以下基本脚本并将其保存为my_script

#!/bin/sh
# My first script

echo "Hello World!"

然后我运行以下命令:chmod 755 my_script授予 shell 执行脚本的权限。我将此脚本放在我的bin目录中,该目录是我用户的子目录(macbook > bin)。我通过执行将此目录添加到我的路径中export PATH=$PATH:bin。我仔细检查了该bin目录是否已添加到PATH,并且确实如此。我只能在bin目录或我的用户目录中运行脚本。但是,例如,如果我导航到 macbook > 文档并尝试通过键入来执行脚本,my_script它将不会执行。我收到以下错误:-bash: bin/my_script: No such file or directory

为什么我的脚本没有在这些其他目录中执行?

4

3 回答 3

4

您需要将绝对路径添加到 $PATH:

export PATH=$PATH:$HOME/bin

否则,shell 将始终搜索当前目录的 bin 子目录(仅当您的当前目录为 $HOME 时才有效)

于 2013-06-19T01:16:16.963 回答
3

bin/表示bin当前目录中的文件夹。因此,为了让它在任何地方工作,将路径更改为 include /Users/user/bin,即不依赖于当前目录的绝对路径。

于 2013-06-19T01:16:01.610 回答
1

您应该将完整路径添加到您的bin目录,而不仅仅是bin. 如果bin是在你的$HOME,你可以添加$HOME/bin~/bin

于 2013-06-19T01:15:28.513 回答