2009-07-08 132 views
19

在cygwin中,我只能執行./script.sh參數,但這會在PowerShell中的記事本中打開腳本文件。從Windows PowerShell運行bash腳本

我需要做什麼讓它執行?

+1

我想知道爲什麼你期望在Powershell中運行* nix-ish腳本......他們有完全不同的命令集和腳本語法(另外,powershell腳本需要.ps1擴展名AFAIK)。 您可以發佈bash腳本,有人可能能夠幫助您使用PowerShell版本。 – 2009-07-08 15:37:18

+0

因爲:它的工作原理。看到接受的答案。 – wsorenson 2009-07-08 17:08:44

+2

我開悟:) – 2009-07-08 18:52:18

回答

15

你應該把腳本作爲參數的* NIX外殼程序運行,相當於* NIXish

sh myscriptfile 
4

如果添加擴展.SH到環境變量PATHEXT,您將能夠運行shell從PowerShell腳本只用腳本名稱帶參數:

PS> .\script.sh args 

如果您存儲腳本包含在PATH環境變量的目錄,你可以在任何地方運行它,並省略擴展名和路徑:

PS> script args 

注意:sh.exe或其他* nix shell必須與.sh擴展名關聯。

11

現在有在Windows 10中的「原生」的解決方案,從而實現在Windows擊後,你可以通過鍵入bash輸入的Bash shell: Bash on Windows

您可以像bash ./script.sh運行bash腳本,但請記住, C驅動器位於/mnt/c,並且外部硬盤驅動器不可安裝。因此,您可能需要稍微更改腳本,以便與Windows兼容。

而且,即使root,你仍然可以得到許可在/mnt移動文件時被拒絕,但你必須在/文件系統完整root力量。

還要確保你的shell腳本是用Unix風格格式化的,否則會出現錯誤。 Example script