当我尝试通过命令 ./name.sh 在命令行中执行文件(name.sh)时,出现以下错误:
“。”不是内部或外部命令、可操作或批处理文件
请帮我执行.sh 文件
答案1
您使用的是 Windows CMD.EXE(来自错误消息)。它使用不同的语法来执行命令。您需要使用sh name.sh
,假设您已安装 Cygwin 或类似程序。
需要澄清的是,Windows 没有内置实用程序来支持 .sh 文件。要运行此类文件,您需要安装第三方工具,例如赛格威。
答案2
我的解决方案:
下载并安装适用于 Windows 的 .git
右键单击桌面并说“在这里 git bash”
像在 unix 中一样执行你的脚本
完毕!
警告:许多命令在 Windows 上不起作用!但是,许多基本命令仍然可以使用。
如果您经常需要该脚本,您可能需要创建一个快捷方式(例如在您的桌面上):
创建快捷方式在
mintty.exe
您的桌面上编辑属性的快捷方式并更改目标(保留路径):
C:\Program Files\Git\usr\bin\mintty.exe" -h always /bin/bash -l -e 'D:\folder\script.sh'
答案3
您正在尝试在 Windows 命令提示符下运行 Linux 命令。
在 Linux 上,正斜杠是路径分隔符。在 Windows 上,反斜杠是路径分隔符,而正斜杠通常表示参数。
因此,Windows 认为您正在尝试运行名为“.”的命令,并解析参数“/name.sh”。正确的约定应该是“.\name.sh”。此外,Windows 会自动在当前目录中搜索您的命令,因此您只需键入“name.sh”即可。
您将面临的下一个问题是 Windows 不知道 sh 脚本是什么,这也是 Linux 的问题。如果您确实想要或需要运行 sh 脚本,可以通过安装 Cygwin 来解决这个问题。
但是,根据您之前的评论,您也可以将脚本重命名为 name.bat 并删除“#!/bin/sh”行。现在您有一个 Windows 应该可以理解的批处理文件。您可以阅读有关批处理文件的更多信息这里。
答案4
您正在尝试用橙汁而不是汽油来驱动您的汽车。Windows 与 Unix/Linux/zOS Unix Subsystem/*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 等。因此,需要安装 CygWin(非极简主义) - 只是为了获得 shell 和 Unix 工具。将其放在闪存驱动器上,以备这些特殊场合使用。