linux 拼字符串会覆盖开头

在拼接字符串的时候,发现一个神奇的现象:后面的字符串将前面的字符串覆盖了。

一、问题描述

shell的内容如下:

project="demo"
project_path="svn://192.168.58.141/home/svn/branches"
echo "$project_path/$project"

执行结果:

demo//192.168.58.141/home/svn/branches

问题原因:文件的类型设置成了:CRLF

二、解决方案

将文件类型改为:LF

CRLF, LF 是用来表示文本换行的方式。CR(Carriage Return) 代表回车,对应字符 ‘\r’;LF(Line Feed) 代表换行,对应字符 ‘\n’。由于历史原因,不同的操作系统文本使用的换行符各不相同。主流的操作系统一般使用CRLF或者LF作为其文本的换行符。其中,Windows 系统使用的是 CRLF, Unix系统(包括Linux, MacOS近些年的版本) 使用的是LF。

三、IDE设置换行

(1)Webstorm 中,File -> Settings -> Editor -> Code Style -> Line separator -> Unix and macOS。
(2)Notepad中,”编辑“-”档案格式转换“-”转为unix格式“。
(3)Sublime Text 3中,Perference->Setting-User 中加入配置 “default_line_ending”: “unix”。

你可能感兴趣的:(linux)