zoukankan      html  css  js  c++  java
  • 关于git自动转义shell换行符问题查找

    场景:

      开发工具由eclipse换成了idea,vcs由svn换成git后,项目的自动安装脚本报错了. /bin/bash^M: bad interpreter

    处理过程:

      查阅网上的资料发现:这种情况是因为shell脚本在windows环境下进行编辑后,换行符由 变成了 ; 手动处理方式为 sed -i "s/ //" filename ,果然手动执行后这个替换命令后,shell脚本执行成功. 但是项目中带了很多shell脚本,在做自动化安装时调用,在调用命令前加替换 的命令挺傻;

      查看idea编辑器的换行符一栏,当前工程下的shell换行符都是 CRLF Windows ( ),在idea File-File properties-Line separators 选择 LF - unix and macOs ( ); 检查目录下shell文件的换行符,批量替换一部分成功改成了LF ,还有一部分顽劣分子还是 CRLF.  批量替换的想法宣告失败.我已经陷入了寻找如何成功批量替换换行符的泥沼;

      期间同事在eclipse上拉取git代码,发现shell脚本同样无法运行; 这样看来,问题是出在了git仓库上了. 打开搜索引擎,寻找关于git 和换行符的关键字;

      找到一篇博文: https://blog.csdn.net/weixin_33275327/article/details/81485051?tdsourcetag=s_pctim_aiomsg

    解决方法:

      1. git设置配置: git config --global core.autocrlf input

      2. 重新拉取shell脚本,问题解决;

  • 相关阅读:
    动画02
    动画01
    css过渡
    06强制类型转换
    05强制类型转换
    jetson 安装opencv4.4.0
    cpp中的内置异常
    cpp中std::string和std::wstring 相互转换
    qt creator杂记
    win10 git bash 使用vim 显示 git log
  • 原文地址:https://www.cnblogs.com/largefacecat/p/12893431.html
Copyright © 2011-2022 走看看