edo*_*ian 1 linux fedora executable
我对这个错误感到非常困惑,甚至不知道该用谷歌搜索什么:
失败- 执行脚本:
./test.sh
bash: ./test.sh: "Permission denied"
Run Code Online (Sandbox Code Playgroud)
有效- 虽然这些方法有效:
sh ./test.sh
Works
bash ./test.sh
Works
Run Code Online (Sandbox Code Playgroud)
cat test.sh
#!/bin/bash
echo "Works"
Run Code Online (Sandbox Code Playgroud)
chmod 777 test.sh
ls -als test.sh
4 -rwxrwxrwx 1 edo edo 27 13. Feb 10:41 test.sh
Run Code Online (Sandbox Code Playgroud)
我对为什么会发生这种情况一无所知,因为这对我来说没有任何意义,我也不知道谷歌用什么词来正确描述这种行为。
根据 shebang 行执行脚本与将其作为参数传递给 shell 的工作方式完全不同。
在前一种情况下,文件必须驻留在可执行分区上,并且必须包含到现有 shell 的有效 shebang 行。
在后一种情况下,这些都不是必需的,因为您正在调用脚本的 shell 负责这些事情。
请注意,您也没有为这些测试使用相同的 shell:第一个推断 bash,而第二个使用 sh。
我的猜测是您的脚本所在的分区不允许执行;mount -v
会告诉你是否是这种情况。
归档时间: |
|
查看次数: |
116 次 |
最近记录: |