即使将其目录添加到“PATH”变量,也无法从某些目录执行Shell脚本

时间:2013-06-19 01:12:46

标签: linux shell

我编写了以下基本脚本并将其保存为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

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

3 个答案:

答案 0 :(得分:4)

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

export PATH=$PATH:$HOME/bin

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

答案 1 :(得分:3)

bin/表示当前目录中的bin文件夹。因此,要使其在任何地方工作,请更改路径以包括/Users/user/bin,绝对路径,不依赖于当前目录。

答案 2 :(得分:1)

您应该将完整路径添加到bin目录,而不仅仅是bin。如果您bin中有$HOME,则可以添加$HOME/bin~/bin