为什么shell脚本在直接执行时不会运行,而是使用/ usr / bin / sh或/ usr / bin / bash运行?

时间:2017-03-10 07:12:55

标签: bash shell unix command command-line-interface

shell脚本文件dummy.sh with -rw-r - r-- permission,使用以下命令运行正常。

/usr/bin/sh dummy.sh

(OR)

/usr/bin/bash dummy.sh

但最终会出现 bash:./ dummy.sh:Permission denied 错误,如下所示直接执行。这背后的原因是什么?

./dummy.sh

2 个答案:

答案 0 :(得分:0)

您的脚本需要标记为系统的可执行文件。这是通过为所有者,团体或世界其他地方设置“x”位来完成的。 请参阅:Wikipedia - Unix permissions 执行

chmod 755 dummy.sh

您将为脚本所有者设置读取,写入和执行权限,并为该组和世界其他地方读取和执行权限。

答案 1 :(得分:0)

使用以下任一选项为shell脚本提供“执行”权限:

  1. chmod 744 dummy.sh
  2. chmod u + x dummy.sh
  3. 请参阅chmod documentation