我正在运行一个shell脚本(Script.sh),它本身又调用其他的shell脚本(Script2.sh、Script3.sh等)。我以root用户身份登录,并已赋予所有脚本执行权限。但是当我执行"ls -l"命令时,文件属性列中仍然没有显示脚本的执行权限。"Script.sh"的运行语法如下:
root@freescale $ sh Script.sh
但是这个脚本无法执行被它调用的其他脚本(Script2.sh,Script3.sh)。错误报告为“权限被拒绝”。
我已经使用chmod命令给予了执行权限,但是权限没有改变,脚本(Script2.sh,Script3.sh等)也没有执行。
我希望这个错误是由于Script2.sh在Script3.sh中被调用的原因:
./Script2.sh
./Script3.sh
如果我把它写成: sh Script2.sh 它可以执行,但无法执行Script2.sh内部调用的其他脚本,并报告同样的错误“权限被拒绝”。
chmod
命令?你需要在脚本上设置执行权限位。 - devnullls -l Script*
的确切输出是什么? - umläutechmod +rx Script.sh
命令来设置其可执行位,但正如umlaeute所指出的那样,挂载分区的noexec位没有设置,这就是为什么脚本不能通过“./”执行的原因。 - pRAShANT