2010-03-15 07:34:42 +0000 2010-03-15 07:34:42 +0000
68
68

如何在Windows上执行.sh文件?

当我试图在命令行中用./name.sh命令执行一个文件(name.sh)时,我得到的错误是:

“. "不被识别为内部或外部命令,可操作或批处理文件

请帮助我执行.sh文件

答案 (15)

76
76
76
2010-03-15 07:58:46 +0000

你在Windows CMD.EXE上(从错误信息来看)。它使用不同的语法来执行命令。你需要使用sh name.sh,假设你已经安装了Cygwin或类似的工具。

澄清一下,Windows没有内置的工具来支持.sh文件。要运行这样的工具,你需要安装一个第三方工具,比如Cygwin

13
13
13
2010-03-15 13:48:44 +0000

你正试图在Windows命令提示符上运行一个Linux命令。

在Linux上,前斜线是一个路径分隔符。在Windows中,反斜线是路径分隔符,而前斜线一般表示参数。

因此,Windows认为你试图运行一个名为". “的命令,并将其解析为参数”/name.sh"。正确的惯例应该是"./name.sh"。此外,Windows会自动搜索当前目录下的命令,所以你可以直接输入 “name.sh"。

下一个问题是Windows不知道什么是sh脚本,这也是Linux的问题。你可以通过安装Cygwin来解决这个问题,如果你真的想要或需要运行sh脚本的话。

然而,根据你之前的评论,你可以把脚本重命名为name.bat,然后删除 ”#!/bin/sh “一行。现在你有一个批处理文件,Windows应该可以理解。你可以阅读更多关于批处理文件的信息 这里.

11
11
11
2010-11-18 15:46:30 +0000

另外,你也可以转到暗处安装Linux。从提示:

sh runide.sh

sudo sh runide.sh

你的程序就会运行,你也会有一个更好的系统。

9
9
9
2017-04-09 18:58:10 +0000

在我看来最好的解决办法是:

  • 下载并安装 .git for Windows

  • 右键点击桌面,说“git bash here ”

  • 执行你的脚本,就像在unix中一样

  • 完成!

_注意: 注意:很多命令在windows系统中无法工作! 如果你经常需要这个脚本,你可能会想创建一个快捷方式(在你的桌面上):

  • **创建一个快捷方式*到桌面上的mintty.exe

  • 编辑快捷方式的属性*,并改变目标(保持路径):

  • C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'

5
5
5
2011-08-16 22:52:50 +0000

你试图用橙汁代替汽油来运行你的汽车。Windows与Unix/Linux/zOS的Unix子系统/*ix的shell脚本共享存储在.bat或.cmd文件中的类似命令,因为这两个系列的操作系统有一个共同的祖先–DEC PDP-x机器。

如果你想获得即时的满足感,你需要安装一个提供 “sh. exe "程序或 "csh.exe "或 "bash.exe "程序(有人说是tsh.exe吗?)

另外,如果你对Unix脚本命令非常熟悉,对Windows的.cmd和.bat文件命令也非常熟悉,你可以将.sh文件翻译成.bat或.cmd文件。即便如此,你也会经常遇到更多的Unix风格的程序,而这些程序在Windows下是没有对应的–grep、sed、vi、emacs等。 放在U盘上,用于这些特殊场合。

3
3
3
2012-05-28 23:19:47 +0000

有人说过,MS-DOS用/表示命令,有人说过,MS-DOS用/`表示命令,表示路径。这有点误导了。看看我举的例子:

C:\myfoo\foo\>cd../.. 
C:\myfoo\foo\>cd..\..

&001 没有任何效果。是的,不是所有的操作都是这样的- 实际的答案很简单_否,或者说没有Cygwin或者SSHD你就不能。

我之所以知道,是因为我傻乎乎地花了半天时间想弄清楚if then fievalexec被调用时,-Djava.something的作用是什么。

2
2
2
2015-07-20 16:24:31 +0000

使用Github for Windows。它包含所有的Unix环境可执行文件。 https://github-windows.s3.amazonaws.com/GitHubSetup.exe

1
1
1
2014-05-13 22:05:11 +0000

我找到了一个不同的简单的解决方案,叫做UnixUtil.

下载并解压到C:驱动器。将环境变量path设置为包含C:\UnixUtils\usr\local\wbin

这很重要。不要将路径设置为C:\UnixUtils\bin

1
1
1
2018-05-01 16:06:51 +0000

这是个老线程,但对于运行Windows 10的用户来说。只需在控制面板中打开windows功能,选择 “打开或关闭Windows功能”

选择 “Linux的Windows子系统"。安装后,你就有了'Bash',你甚至可以在bash中配置原生Linux服务器。当然,在bash中的sh命令也可以使用。

1
1
1
2016-12-27 10:39:14 +0000

为了完整,我想提一下Windows 10的一个新功能 “Linux的Windows子系统"。详情请参见 http://www.howtogeek.com/249966/how-to-install-and-use-the-linux-bash-shell-on-windows-10/

注意,它需要激活 "开发者模式 "开关并启用 "Windows Subsystem for Linux (Beta) "选项。

0
0
0
2012-08-31 15:16:38 +0000

如果你的家里(或工作场所)有一个Linux盒子,并且插在同一个网络上,而且这个网络是安全的,这样做可能会有效果:

  1. 在Windows上做一个文件夹共享(相当简单,但要确保网络安全,不被入侵者入侵)。
  2. mount //WinMachine/Share LinuxFolder 挂载在 Linux 中(IIRC,需要 Samba )。3. 使用类似 PuTTY 的东西,远程登录到那个 Linux 盒子上。4. 在挂载的文件夹中运行你的命令。
0
0
0
2010-03-15 13:46:42 +0000

好吧,这有很多问题–把#!/bin/sh去掉,然后把扩展改为bat,再修一下就可以了。然后你可以通过文件名来调用它。

unix shell脚本的语法和windows批处理文件的语法不太相似。

0
0
0
2016-08-25 07:34:59 +0000

虽然这里的答案在当时是正确的,但Windows 10does现在可以选择包含一个运行完整的bash shell的Ubuntu的修改版本

一旦可执行,脚本可以在bash中以通常的方式运行,例如:

chmod +x myscript.sh
./myscript.sh

如果你想直接在Windows中运行脚本,你可以在同一目录下创建一个快捷方式,并将 “目标 "设置为:

C:\Windows\System32\bash.exe -c "./myscript.sh"

如果你的脚本路径与快捷方式的位置是相对的(如上例),请确保 "Start in "字段也是空白的。

0
0
0
2015-11-23 11:57:56 +0000

要在windows下运行shell脚本,首先使用命令:dos2unix,然后可以使用正常的命令:sh runide.sh

。首先使用命令:dos2unix,然后你可以使用正常的命令:sh runide.sh

这样就可以了。

0
0
0
2010-03-15 07:55:19 +0000

有可能问题实际上是在name.sh文件中—-你正在尝试使用.命令,但它试图运行一种shell(例如,csh,我想是name.sh),而在这种情况下,这不是一个有效的命令。