Linux中换行符问题

问题描述

在Windows系统中写的脚本,直接上传到服务器中不能直接运行,会出现以下错误:

  • 使用 sh xxx.sh运行脚本
    在这里插入图片描述
  • 使用 ./ xxx.sh运行脚本

在这里插入图片描述

问题原因

出现这个问题是因为Windows系统和Linux系统的换行符命令不同

系统描述名称转义符
Windows回车换行CRLF\n\r
Linux换行LF\n
file ./xxx.sh

使用file 命令查看当前文件格式
在这里插入图片描述
发现使用的是CRLF行终止符,是Windows中的换行符

解决方案
编辑文件的方式修改

使用vim编辑需要修改的文件

:set fileformat=unix
或
:set ff=unix
直接修改文件格式
dos2unix ./xxx.sh
在Windows中修改

我使用的是VS Code进行编写的脚本,右下角有CRLF或LF选项,将此选项修改为LF即可(同理,其他编辑器也可进行设置)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2qmUPUxm-1640574879361)(C:\Users\JMB125\Desktop\笔记\系统学习笔记\Linux换行符4.png)]

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值