WSL:解决Windows检出的Bash脚本无法运行的便捷方案
无需手动转换WSL中Bash脚本的解决方案
以下几种方案可以避免每次手动转换行尾格式:
1. 针对脚本文件配置Git行尾规则
在仓库根目录创建或编辑.gitattributes文件,为Bash脚本指定固定的LF行尾:
*.sh text eol=lf
执行以下命令让Git重新应用规则:
git rm --cached -r . git reset --hard
之后仓库中的.sh文件会始终以LF格式存储和检出,WSL中可直接运行。
2. 在WSL中单独配置Git的行尾处理
WSL的Git环境独立于Windows,直接在WSL终端中关闭自动行尾转换:
git config --global core.autocrlf false
后续在WSL内克隆、拉取或操作仓库时,文件会保持原始的LF格式,无需转换即可执行脚本。
3. 让Bash自动忽略CR字符
修改WSL的Bash配置,使其自动处理CRLF格式的脚本:
编辑~/.bashrc文件,添加以下内容:
export SHELLOPTS igncr
执行命令使配置生效:
source ~/.bashrc
之后即使脚本是CRLF格式,Bash运行时会自动忽略行尾的CR字符,无需修改文件本身。
内容的提问来源于stack exchange,提问作者Roland M
相关产品推荐
相关产品推荐

