当我尝试通过命令 ./name.sh 在命令行中执行文件(name.sh)时,出现以下错误:
“。” 不是内部或外部命令、可操作文件或批处理文件
请帮我执行 .sh 文件
Rog*_*mbe 80
您使用的是 Windows CMD.EXE(来自错误消息)。它使用不同的语法来执行命令。sh name.sh假设您已经安装了 Cygwin 或类似软件,您将需要使用。
澄清一下,Windows 没有支持 .sh 文件的内置实用程序。要运行它,您需要安装第三方工具,例如Cygwin。
Han*_*yer 20
下载并安装适用于 Windows 的 .git
右键单击桌面并说“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'
小智 14
您正在尝试在 Windows 命令提示符下运行 Linux 命令。
在 Linux 上,正斜杠是一个路径分隔符。在 Windows 上,反斜杠是路径分隔符,正斜杠通常表示参数。
因此,Windows 认为您正在尝试运行名为“.”的命令。并解析它的参数“/name.sh”。正确的约定是“.\name.sh”。此外,Windows 会自动在当前目录中搜索您的命令,因此您只需键入“name.sh”即可。
您将面临的下一个问题是 Windows 不知道 sh 脚本是什么,这又是 Linux 的事情。如果您真的想要或需要运行 sh 脚本,您可以通过安装 Cygwin 来解决此问题。
但是,根据您之前的评论之一判断,您也可以将脚本重命名为 name.bat 并删除“#!/bin/sh”行。现在你有一个 Windows 应该理解的批处理文件。您可以在此处阅读有关批处理文件的更多信息。
小智 11
或者,您可以转向阴暗面并安装 Linux。从提示:
sh runide.sh
Run Code Online (Sandbox Code Playgroud)
或者
sudo sh runide.sh
Run Code Online (Sandbox Code Playgroud)
您的程序将运行,您也将拥有一个更好的系统。
小智 5
你试图用橙汁而不是汽油来驱动你的汽车。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工具。把它放在闪存驱动器上,在这些特殊场合。
小智 0
问题可能实际上出在文件内name.sh- 您正在尝试使用该.命令,但它正在尝试运行一种 shell(例如,csh我认为),其中这不是有效的命令。
那么:是否name.sh从正确的开始#!/bin/sh(如果您实际上正在尝试运行sh)?
| 归档时间: |
|
| 查看次数: |
732735 次 |
| 最近记录: |