修复WSL中env:'bash\r'的冲突问题

前言

由于之前C/C++环境配置出问题,近期把WSL重装了一次,结果在配置zsh-proxy的时候出现了报错

1
/usr/bin/env: ‘bash\r’: No such file or directory

直接搜索的方案要么是直接屏蔽掉Windows的Path继承,要么是说重启下wsl就好,但都比较模棱两可

问题原因

后面在查看了proxy相关的报错后,发现只有配置gitproxy时会出现这个问题,同时根据Stack Overflow上别人类似情况的提问,发现npm同样也无法使用。检查后发现是在Windows对应的Path内,gitnpm本身没有.exe的后缀就能启动,而wsl内是可以执行Windows下的部分可执行文件的,因此wsl调用了基于Windows的环境变量,从而导致了换行符与wsllinux格式不兼容。

解决方案

本来想的是怎么处理屏蔽Windows的相关Path,后面发现只需要在WSL上重新安装好gitnpm后重启wsl

1
2
3
wsl --shudown
# 或者仅关闭指定发行版,例如`Arch`
wsl -t Arch

就可以解决问题了。之前在Stack Overflow上其他人能直接通过重启wsl解决问题,应该也是无意中自己已经覆盖安装过了对应的工具,然后重启才取得了效果,在这里做个记录以做备忘。


修复WSL中env:'bash\r'的冲突问题
https://halc.top/p/b3a8b5ef
作者
HalcyonAzure
发布于
2022年4月18日
许可协议