2009-11-04 73 views
1

我不是Cygwin的運行,但我有cygwin的ash.exe在我的%PATH%爲sh.exe並在%PATH%cygwin1.dllCygwin的Shell腳本

我試圖援引一些shell腳本(沒有擴展名)使用sh -c shell-script-name但是我得到了「permission denied」錯誤。如果我運行sh並運行./script,我也會得到這個錯誤。我有一個正確的#!/ bin/sh shebang行,甚至重命名爲.sh或.exe也沒有任何作用。我該怎麼辦?

回答

1

嘗試查看Windows權限是否導致問題的一件事是運行Process Monitor並將其篩選爲sh.exeshell-script-name。這可能會告訴你,如果你沒有特別的權限(例如你可能已經閱讀但沒有執行權限)。

嘗試也運行shell交互方式,即:

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

如果這個工程,那麼你知道cygwin的部分是否正常工作。另一件要檢查的事情是,腳本的行尾是unix,因爲這可能會阻止腳本正確執行。

+1

行尾Unix的 ./script失敗 。 ./script成功 sh ./script成功 sh -c ./script失敗 sh -c腳本失敗 – singpolyma 2009-11-04 20:32:51

+0

是否可以在您調用具有更改當前工作目錄的效果的sh時使其不會找到腳本?試試'sh -c pwd' – 2009-11-04 21:33:15

+0

我正在運行和@singpolyma完全相同的行爲,Procmon告訴我bash正在目錄C:\ cygwin \ home \ Mark \ unknown \ Mark中查找失敗的案例。這個目錄不存在,我不知道爲什麼bash可能在那裏尋找文件。 – Mark 2013-03-21 05:06:04

0

一切爲我工作後做:

$ chmod +x script