我没有运行cygwin,但我的%PATH%中的cygwin ash.exe为sh.exe,并且%PATH%中有cygwin1.dll
我正在尝试使用sh -c shell-script-name调用一些shell脚本(使用无扩展名命名),但是我收到了“权限被拒绝”错误。如果我运行sh并运行./script我也会收到此错误。我有一个正确的#!/ bin / sh shebang行甚至重命名为.sh或.exe都没有效果。我该怎么办?
答案 0 :(得分:1)
尝试查看Windows权限是否导致问题的一件事是运行Process Monitor并过滤sh.exe
和shell-script-name
。这可能会告诉你是否有你没有的特别许可(例如你可能已经阅读但没有执行权限)。
尝试以交互方式运行shell,即:
c:\>sh
sh# . ./script or
sh# sh -c ./script
如果这样可行,那么您就知道cygwin部分正常工作。另一件要检查的是脚本的行结尾是unix,因为它可以阻止脚本正确执行。
答案 1 :(得分:0)
在做完之后,一切都对我有用:
$ chmod +x script