求助:在windows中(使用msys2),eshell如何自动执行以“#!/bin/sh”开头的脚本?

我在eshell中运行以#!/bin/sh开头的脚本会报错,说找不到sh的位置:

/bin/sh: command not found

我发现问题的原因在于sh实际上是c:/msys64/usr/bin/sh,而不是字面上的/bin/sh,也就是说,这里需要路径转换.

msys2是通过将c:/msys64/usr/bin挂载到了/bin来模拟linux下的环境的, 所以,msys2的terminal和使用了cygwin-mount的emacs可以识别这种地址的转换。

但eshell却无法在解释#!/bin/sh时使用这种转换。

我想解决这个问题,大家有什么建议吗?

在WSL下用emacs吧,真香

我在WSL下用gui的emacs感觉很难受啊(可能没设置好), 比如:

  1. 如果几分钟不用emacs, 再切换回emacs时会卡很久. 当然, 切换到其他WSL的图形窗口也一样要等很久.

  2. WSL下的键盘映射有问题, 比如我的方向键"上"键, 被映射成了8, 而且, 小键盘也不能用.

小键盘的问题我也碰到了,但是它和方向键我都不用所以…… 卡很久的情况没遇到

我怀疑一段时间不用WSL的桌面之后, 它们就被放进类似于Linux中swap空间, 所以再切换回来就相当于要读硬盘, 所以慢.

但因为我不懂也不太想碰windows这部分的设置, 所以就算了 :sweat: