我很困惑这个错误,甚至不知道什么谷歌:
失败 – 执行脚本:
./test.sh bash: ./test.sh: "Permission denied"
工作 – 而这些Apporeaches工作:
sh ./test.sh Works bash ./test.sh Works
cat test.sh #!/bin/bash echo "Works"
chmod 777 test.sh ls -als test.sh 4 -rwxrwxrwx 1 edo edo 27 13. Feb 10:41 test.sh
对于这种情况,我很无知,因为这对我没有任何意义,我也不知道Google能够正确地描述这种行为。
通过依赖shebang行来执行一个脚本与将它作为parameter passing给shell非常不同。
在前一种情况下,文件必须驻留在可执行分区上,并且必须包含到现有shell的有效shebang行。
在后一种情况下,没有必要,因为你正在调用脚本的shell负责这些事情。
请注意,您对这些testing不使用相同的shell:第一个推断bash,而第二个使用sh。
我的猜测是脚本所在的分区不允许执行; mount -v会告诉你这是否是这种情况。