1

如果我创建一个目录mkdir -p,它会导致脚本出现问题

$ mkdir -p test2/test2

$ cd test2/test2

$ echo '#!/bin/sh
> echo hello' > hello.sh

$ ./hello.sh
bash: ./hello.sh: Permission denied
4

2 回答 2

7

这无关mkdir。您根本没有授予hello.sh可执行权限。您需要以下内容:

chmod +x hello.sh
于 2012-07-15T17:45:26.777 回答
1

检查您的权限

检查您的目录和脚本本身的权限。那里可能有问题,尽管不太可能。

ls -lad test2/test2
ls -l test2/test2/hello.sh

如果由于某种原因未正确设置您的权限,您始终可以将--mode标志与mkdir一起使用。有关详细信息,请参阅 chmod(1) 和 mkdir(1)。

直接执行文件

只要当前用户可以读取文件,就可以直接使用 Bash 执行脚本,而不是依赖 shebang 行或可执行位。例如:

bash test2/test2/hello.sh

更改文件权限

如果您可以在使用 Bash 显式调用时执行该文件,那么您只需要确保您的文件设置了执行位。例如:

chmod 755 test2/test2/hello.sh
于 2012-07-15T17:49:30.983 回答