从Windows PowerShell运行bash脚本

问题描述:

在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

你应该把脚本作为参数的* NIX外壳程序运行,相当于* NIXish

sh myscriptfile 

如果添加扩展.SH到环境变量PATHEXT,您将能够运行shell从PowerShell脚本只用脚本名称带参数:

PS> .\script.sh args 

如果您存储脚本包含在PATH环境变量的目录,你可以在任何地方运行它,并省略扩展名和路径:

PS> script args 

注意:sh.exe或其他* nix shell必须与.sh扩展名关联。

现在有在Windows 10中的“原生”的解决方案,从而实现在Windows击后,你可以通过键入bash输入的Bash shell: Bash on Windows

您可以像bash ./script.sh运行bash脚本,但请记住, C驱动器位于/mnt/c,并且外部硬盘驱动器不可安装。因此,您可能需要稍微更改脚本,以便与Windows兼容。

而且,即使root,你仍然可以得到许可在/mnt移动文件时被拒绝,但你必须在/文件系统完整root力量。

还要确保你的shell脚本是用Unix风格格式化的,否则会出现错误。 Example script