linux无法运行脚本文件格式,linux脚本-文件格式导致脚本异常-无法找到脚本文件...

前言

在windows下的文本,默认换行符是^M$,称为CR与LF两个符号;而在Linux中是以$结尾,即LF结尾。因此如果在windows下编辑的shell脚本如果没有选对正确的格式就会出现很诡异的现象,甚至不能运行。

5cc98d5966fc6835a91a69bdb081c549.png

查看文件类型

可以使用file命令进行查看:

file 1.sh

1.sh: Bourne-Again shell script, ASCII text executable, with CRLF line terminators

可以看到,脚本是以CRLF换行的。

如果直接执行就会发现,无法找到解释器,发现解释器的后面还加了一个^M:

./1.sh

bash: ./1.sh: /bin/bash^M: 解释器错误: 没有那个文件或目录

直接使用bash -x查看执行过程:

bash -x 1.sh

+ a=$'linux123124124124\r'

+ echo $'linux123124124124\rabcdef\r'

abcdef23124124124

这里可以看到\r的字符导致输出的结果异常的。

e5682dca15bc696ed16951ededfd871a.png

触摸屏

解决办法

1、使用vim转换格式

vim 1.sh

在命令模式先输入

:set ff=unix

或者

:set fileformat=unix

2、使用dos2unix命令

dos2unix 1.sh

3、使用sed替换掉\r$

sed -i 's/\r$//' 1.sh

29bbaa0f1e7651eddad1ac77bcc202ab.png

蓝色发光新技术在深空

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值