我编写了以下基本脚本并将其保存为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
为什么我的脚本没有在这些其他目录中执行?
答案 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
。