Linux编码及dos2unix,unix2dos命令

article/2025/8/22 13:17:37

通常我们在执行shell脚本的时候会遇到类似下面的错误,而事实上脚本没有任何问题,很多人会卡在这一步很久,其实有可能是编码导致的回车符不一致引起的:

ERROR

$'\r': command not found

^M: bad interpreter

No such file or directory

这种情况有可能发生在脚本在windows环境下编写或修改,然后上传到Linux服务器执行时报错,可以使用dos2unix命令将DOS编码转为UNIX编码,同样也可以使用unix2dos命令将UNIX编码转为DOS编码。

#DOS编码转为UNIX编码
dos2unix filename#UNIX编码转DOS编码
unix2dos filename#有些机器上没有安装dos2unix命令,也可以使用vim命令修改编码
vim filename
#vim打开文件后执行下面的命令即可转为unix编码
:set fileformat=unix

类似的还有 mac2unix, unix2mac 适用于mac系统和unix系统编码转换; 

例子:

wyk_csdh.sh 

#!/bin/bash
BASEDIR="`dirname $0`"
name=$1
company=$2echo $BASEDIR
echo $name
echo $company

这个shell在windows环境下编辑,上传到linux环境执行后会报错:

使用cat -v命令可以看到非打印的特殊字符:

cat --help
Usage: cat [OPTION]... [FILE]...
Concatenate FILE(s), or standard input, to standard output.-A, --show-all           equivalent to -vET-b, --number-nonblank    number nonempty output lines, overrides -n-e                       equivalent to -vE-E, --show-ends          display $ at end of each line-n, --number             number all output lines-s, --squeeze-blank      suppress repeated empty output lines-t                       equivalent to -vT-T, --show-tabs          display TAB characters as ^I-u                       (ignored)-v, --show-nonprinting   use ^ and M- notation, except for LFD and TAB--help     display this help and exit--version  output version information and exit

使用dos2unix转为unix编码:

使用vim命令转换编码:

希望本文对你有帮助,请点个赞鼓励一下作者吧~ 谢谢!


http://chatgpt.dhexx.cn/article/6xfSG5bA.shtml

相关文章

Linux命令之dos2unix

最近在linux下安装fastdfs服务器的时候,发现修改好相关的配置文件之后;启动nginx静态资源服务器,上传图片成功后,输入storage服务器给出的图片存储路径。 例如 http://192.168.1.5/group1/M00/00/00/wKgBBVfsGhyAKA81AABdr…

Linux命令学习总结:dos2unix - unix2dos

命令简介: dos2unix是将Windows格式文件转换为Unix、Linux格式的实用命令。Windows格式文件的换行符为\r\n ,而Unix&Linux文件的换行符为\n. dos2unix命令其实就是将文件中的\r\n 转换为\n。 而unix2dos则是和dos2unix互为孪生的一个命令,它是将Li…

mac vim 配色方案

如果没有代码高亮的话,用vim写代码确实不爽,于是,笔者今天花了一个上午的时间把mac下vim 的所有配色试了个遍, 下面给大家展示一下mac下所有vim的配色方案的样式。 darkblue delek elflord koehler murphy p…

MacVim配置参考

1、http://www.oschina.net/question/132421_18650?sorttime&p1 vim是一个很强的神器,对于我只用到其中的一小部分内容,接下来是我打造 php IDE的全过程,希望有兄弟能指点我其中的不足,要学习的兄弟能跟我一起努力学习。 第一…

mac vim 安装 YouCompleteMe 插件自动补全

前言 笔者常用vim进行c/c/go开发,虽说vim也有自带自动补全(controln,controlp),不过操作上还是比较麻烦,笔者希望可以实现,输入部分单词可以直接弹出下拉框提示所有可能的单词。网上一搜&#…

安装Macvim

前言 本文记录了一次安装Macvim遇到的问题和解决办法,并提到了如何从终端启动Macvim。 brew install macvim 成功,但启动报错 今天重装了Mac系统(10.11.5 El Capitan,你问Mac居然也重装系统?我只是想要一块干净的硬盘。). 折腾…

命令行使用MacVim

命令行使用MacVim 配置环境变量 vim ~/.zshrc 增加以面一行 alias gvim/Applications/MacVim.app/Contents/MacOS/Vim -g2021年8月30日补充 评论区有小伙伴有疑问,截图说明一下。 动画演示 总结 我个人还是喜欢直接使用命令行中的vim,这样更纯粹…

mac vim没有颜色 vim着色

mac选手使用vim的时候发现,代码全是白色的!我的天,我用的是vi吗? 但是编辑/usr/share/vim/vimrc中会发现系统不让用户改因为没有权限,这样可以直接在当前用户下实现同样的功能。步骤如下: 新建vimrc文件 …

MacOS - MacVim安装

1.应用场景 主要用于学习使用MacVim进行编程,尤其是在服务端编程发挥作用~ 2.学习/操作 1.文档阅读 01|各平台下的 Vim 安装方法:上路前准备好你的宝马-极客时间 Releases macvim-dev/macvim GitHub https://github.com/macv…

2022 最新 Mac Vim 开发环境的部署与配置

2022 最新 Mac Vim 开发环境的部署与配置 效果图 Vim 插件简介 插件名描述pope/vim-fugitiveVim 编辑器中的 Git 包装器插件,它可以让我们在 Vim 编辑器中完成 Git 操作scrooloose/nerdtree用来提供一个导航目录的侧边栏ryanoasis/vim-devicons在 NERDTree 中显示…

《设计模式之禅》中23种设计模式demo汇总

《设计模式之禅》中23种设计模式demo汇总 Git地址: https://github.com/baozi-little/designPatterns 23种设计模式如下图: 项目架构:JDK1.8 springboot 每个设计模式都有对应的单元测试,可直接运行,项目结构如下&a…

设计模式之禅--思维导图

原图ProcessOn里搜索:设计模式之禅

设计模式之禅之结构类PK【装饰模式VS适配器模式】

设计模式之禅PK之结构类 结构类设计模式 结构类模式: 适配器模式 桥梁模式 组合模式 装饰模式 门面模式 享元模式 代理模式 相同点:他们都是通过组合类或对象产生更大的结构以适应更高的层次的逻辑需求 【装饰模式】VS【适配器模式】 装饰模式和适配器模…

设计模式之禅——观察者模式

观察者模式是一种比较常见的设计模式,在安卓源码中也应用得很多,如baseAdapter、相关触发器机制。 首先从一个情景入手,战国时期,李斯(观察者)作为秦国宰相希望监视(观察)韩非子&…

《设计模式之禅》-策略模式

策略模式 定义 定义一组算法,将每个算法都封装起来,并且使它们之间可以互换 策略模式有三个角色 1.Strategy 抽象策略角色 策略,算法家族的抽象,通常为接口,定义每个策略或算法必须具有的方法和属性。 2.Concrete…

《设计模式之禅》-原型模式

原型模式属于比较简单的设计模式,所以使用次数也非常的多 定义: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 原型模式的通用代码: public class PrototypeClass implements Cloneable {Overridepublic Pr…

设计模式之禅——门面模式

门面模式【Facade Pattern】也叫外观模式,是一种比较常用的封装模式,其定义如下: 【要求一个子系统的外部与其内部的通信必须通过一个统一的对象进行。门面模式提供一个高层次的接口,使得子系统更容易使用】 门面模式注重“统一…

设计模式之禅读后感

过早优化是万恶之源——Unix编程思想 让正确的程序更快,要比让快速的程序正确容易得多。 文章目录 前言六大设计原则*单一职责原则**里氏替换原则**依赖倒置原则**接口隔离原则**迪米特法则**开闭原则* 二十三种设计模式创建型模式*单例模式**工厂方法模式**抽象工厂…

设计模式之禅笔记

设计模式PK 创建类模式PK 工厂方法模式 VS 建造者模式 工厂方法模式注重的是整体对象的创建方法。建造者模式注重的是部件构建的过程。 工厂方法模式的对象粒度较粗,建造者模式的产品对象粒度较细。 抽象工厂模式 VS 建造者模式 抽象工厂模式也是注重产品的整…

《设计模式之禅》(第2版)

第一部分 大旗不挥 谁敢冲锋 —— 6大设计原则全新解读 第1章 单一职责原则 单一职责原则,Single Responsibility Principle,简称SRP,有且只有一个原因引起类/接口的变更;即一个接口/类只有一个职责,只负责一件事…