Cygwin Shell Scripts

时间:2009-11-04 20:20:47

标签: shell permissions scripting cygwin

我没有运行cygwin,但我的%PATH%中的cygwin ash.exe为sh.exe,并且%PATH%中有cygwin1.dll

我正在尝试使用sh -c shell-script-name调用一些shell脚本(使用无扩展名命名),但是我收到了“权限被拒绝”错误。如果我运行sh并运行./script我也会收到此错误。我有一个正确的#!/ bin / sh shebang行甚至重命名为.sh或.exe都没有效果。我该怎么办?

2 个答案:

答案 0 :(得分:1)

尝试查看Windows权限是否导致问题的一件事是运行Process Monitor并过滤sh.exeshell-script-name。这可能会告诉你是否有你没有的特别许可(例如你可能已经阅读但没有执行权限)。

尝试以交互方式运行shell,即:

c:\>sh
sh# . ./script     or
sh# sh -c ./script

如果这样可行,那么您就知道cygwin部分正常工作。另一件要检查的是脚本的行结尾是unix,因为它可以阻止脚本正确执行。

答案 1 :(得分:0)

在做完之后,一切都对我有用:

$ chmod +x script