利用TortoiseGit将shell脚本文件从远端Gitlib库克隆到本地后脚本无法执行

3 篇文章 0 订阅

故障现象:

在Windows下我利用TortoiseGit将shell脚本文件从远端Gitlib库克隆到本地后在Linux下脚本无法执行,运行脚本时出现如下错误提示:

/bin/sh: 0: Can't open

解决过程:

好好的脚本为啥突然就不能执行了,之前可是没有问题的啊(注:我的电脑被重装过,TortoiseGit也重新安装了,和之前没问题时的环境还是有点不一样)。

我将出问题的脚本和之前没问题的脚本(还好我有备份)通过Beyond Compare 3软件比对发现有问题的shell脚本的文件格式变成了Windows,而没有问题的shell脚本的文件格式为Unix,那这样的话他们的行结束符就会有差异,这可能就是有问题的shell脚本不能执行的原因。我用notepad++将有问题的shell的文件格式由Windows转换为Unix,之后再运行,可以了。看来就是文本格式原因造成的。

shell脚本不能运行的原因算是找到了,但是为什么使用TortoiseGit克隆远端的源码会将文件的格式转换了?难道与TortoiseGit的设置有关?果然,就是与TortoiseGit的设置有关,将文件格式有Unix转换为Windows的就是由下面红色框中的选项决定的;


将此处的选项去掉后,我使用TortoiseGit从远端克隆的shell脚本就能正常在Linux系统中运行了。

知识补充:

1.在三大OS下,其环境下的行结束符是如下所示,所以当Unix OS的文本文档用Win OS来读取时,就会发生问题,所有的文字都在同一行。

OS :   十六进制  -> ascii码 -> 简称 -> 全称/中文名称

Mac OS:  0D     -> \r      -> CR  -> Carriage Return / 回车(符)

Unix OS: 0A     -> \n      -> LF  -> Line Feed / 换行(符)

Win OS: 0D 0A   -> \r\n    -> CR LF


2.使用notepad++查看当前文本格式

Notepad++界面中,在右下角有文件格式的描述:“Dos\Windows或Unix或Mac”

3.使用notepad++进行文本格式转换

编辑->档案格式转换->,其中可以进行三种文本格式的转换。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值