Cygwin Shell脚本
我没有运行cygwin,但我在%PATH%中有cygwin ash.exe作为sh.exe,在%PATH%中有cygwin1.dllCygwin Shell脚本,shell,permissions,scripting,cygwin,Shell,Permissions,Scripting,Cygwin,我没有运行cygwin,但我在%PATH%中有cygwin ash.exe作为sh.exe,在%PATH%中有cygwin1.dll 我试图使用sh-CShell脚本名调用一些shell脚本(命名时没有扩展名),但我得到一个“权限被拒绝”错误。如果我运行sh并运行./script,我也会得到这个错误。我有一个合适的/bin/sh shebang行,甚至重命名为.sh或.exe都没有效果。我该怎么办?尝试查看Windows权限是否导致问题的一件事是运行并筛选sh.exe和shell脚本名称。这可能
我试图使用sh-CShell脚本名调用一些shell脚本(命名时没有扩展名),但我得到一个“权限被拒绝”错误。如果我运行sh并运行./script,我也会得到这个错误。我有一个合适的/bin/sh shebang行,甚至重命名为.sh或.exe都没有效果。我该怎么办?尝试查看Windows权限是否导致问题的一件事是运行并筛选
sh.exe
和shell脚本名称
。这可能会告诉你是否有你没有的特定权限(例如你可能有读取但没有执行权限)
尝试以交互方式运行shell,即:
c:\>sh
sh# . ./script or
sh# sh -c ./script
如果这样做有效,那么您就知道cygwin部件工作正常。要检查的另一件事是,脚本的行尾是unix,因为这可能会阻止脚本正确执行。尝试查看Windows权限是否导致问题的一件事是运行并筛选
sh.exe
和shell脚本名
。这可能会告诉你是否有你没有的特定权限(例如你可能有读取但没有执行权限)
尝试以交互方式运行shell,即:
c:\>sh
sh# . ./script or
sh# sh -c ./script
如果这样做有效,那么您就知道cygwin部件工作正常。要检查的另一件事是脚本的行尾是否为unix,因为这会阻止脚本正确执行。执行以下操作后,我的所有操作都正常:
$ chmod +x script
做了以下事情后,一切都对我有效:
$ chmod +x script
行结尾不正确。/script失败/脚本成功sh./script成功sh-c./script失败sh-c脚本失败调用sh时是否会导致更改当前工作目录,使其无法找到脚本?尝试
sh-cpwd
我遇到了与@singpolyma完全相同的行为,Procmon告诉我bash正在目录c:\cygwin\home\Mark\unknown\Mark中查找失败案例。这个目录不存在,我不知道为什么bash会在那里查找文件。行结尾是Unix。/script失败/脚本成功sh./script成功sh-c./script失败sh-c脚本失败调用sh时是否会导致更改当前工作目录,使其无法找到脚本?尝试sh-cpwd
我遇到了与@singpolyma完全相同的行为,Procmon告诉我bash正在目录c:\cygwin\home\Mark\unknown\Mark中查找失败案例。这个目录不存在,我不知道为什么bash会在那里查找文件。