如果我使用mkdir -p
制作目录,则会导致脚本出现问题
$ mkdir -p test2/test2
$ cd test2/test2
$ echo '#!/bin/sh
> echo hello' > hello.sh
$ ./hello.sh
bash: ./hello.sh: Permission denied
答案 0 :(得分:7)
这与mkdir
无关。您根本没有给出hello.sh
可执行权限。您需要以下内容:
chmod +x hello.sh
答案 1 :(得分:1)
检查目录和脚本本身的权限。可能存在问题,尽管不太可能。
ls -lad test2/test2
ls -l test2/test2/hello.sh
如果由于某种原因未正确设置权限,则始终可以将 - 模式标记与 mkdir 一起使用。有关更多信息,请参阅chmod(1)和mkdir(1)。
您可以直接使用Bash执行脚本,而不是依赖于shebang行或可执行位,只要该文件可由当前用户读取即可。例如:
bash test2/test2/hello.sh
如果您可以在使用Bash显式调用时执行该文件,那么您只需要确保您的文件设置了执行位。例如:
chmod 755 test2/test2/hello.sh