我的 Windows 机器上安装了 MSYS。
根文件夹内有两个可执行文件:
(还有一个 mingw32.exe,但我相信这只是 mingw64 的 32 位版本)。
两个可执行文件都会启动一个终端窗口,除了 $PATH 报告略有差异之外,这对我来说似乎是相同的。
这两者有什么区别,各自的目的是什么?
这相当于:
dd if=/dev/sda ...
dd if=/dev/sda1 ...
Run Code Online (Sandbox Code Playgroud)
Chrysocome语法适用吗?
一个目录的内容:
$ ls -l
total 122639
-rw-r--r-- 1 125578080 Aug 20 17:47 - Diana Krall, Stan Getz & Oscar Peterson.7z
drwxr-xr-x 4 4096 Aug 20 18:02 Java
Run Code Online (Sandbox Code Playgroud)
我想用file这个目录下的命令,里面复制了很多各种文件
$ file *
Run Code Online (Sandbox Code Playgroud)
我期望的结果:
$ file *
- Diana Krall, Stan Getz & Oscar Peterson.7z: 7-zip archive data, version 0.3
java: directory
Run Code Online (Sandbox Code Playgroud)
我得到的结果:
$ file *
file: illegal option --
file: illegal option -- D
file: illegal option -- a
file: illegal option -- a
file: illegal option --
file: …Run Code Online (Sandbox Code Playgroud) [编辑添加:]事实证明,这里的实际问题是我犯的一个无脑的打字错误。我实际问题的答案是“是的,如果你不是白痴,你只需做显而易见的事情,它就会起作用”。我接受基本上是这样说的答案,但也许实际上应该删除这个问题。
我的雇主在 Windows 上进行软件开发的标准设置涉及使用 MSYS。(传统的 MSYS 或 MSYS2。)有没有办法在新的 Windows 终端中运行其中任何一个的 shell?
sh.exe传统的 MSYS 有一个 Windows 批处理脚本,可以安排在运行它的任何终端内执行。因此,您可能认为在 WT 中创建一个新的配置文件profiles.json,使用"commandline": "path\to\sh.exe",就可以解决问题。唉,不:如果我这样做并向 WT 询问该类型的终端,我会得到一个普通的旧cmd提示。(从 开始C:\WINDOWS\System32。)[编辑添加:] 呃,不,唉,是的:如果我这样做,那么它基本上可以工作,但是这会出现一些错误,而接受的答案是正确的。
您运行以获得 MSYS2 提示符的是 Windows 可执行文件,而不是传统 MSYS 中的批处理脚本,但它也启动自己的sh.exe. 同样的事情也会发生。
我想这里发生的事情是 MSYSsh.exe只是期望通过 stdin 和 stdout 进行交互,而适合直接从 WT 运行的可执行文件需要了解相当复杂的 Microsoft 控制台 API 或类似的东西。
我也尝试过以下方法,但没有什么乐观的态度,也没有成功(它们都产生与上面相同的结果):
"commandline": "cmd path/to/sh.exe"
"commandline": "cmd /c path/to/sh.exe"
"commandline": "cmd path/to/msys2_shell.cmd"
"commandline": "cmd /c path/to/msys2_shell.cmd"
Run Code Online (Sandbox Code Playgroud)
有没有什么方便的方法可以让 MSYS shell 在 Windows 终端中运行?