`
天堂飘过
  • 浏览: 19451 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

windows下脚本在linux运行换行问题

阅读更多
#!/bin/bash
NOWDATE=`date +%Y%m%d`
LOG_DIR="/data/logs/nginx"
LOG_PATH=${LOG_DIR}${NOWDATE}
echo "date:$NOWDATE"
echo "LOG_DIR:$LOG_DIR"
echo "LOG_PATH:"
echo ${LOG_PATH}

简简单单的代码,输出不是我想要的
date:20160708
LOG_DIR:/data/logs/nginx
LOG_PATH:
20160708gs/nginx

用 sh -x nginxstatic.sh 查看
++ date +%Y%m%d
+ NOWDATE=$'20160708\r'
+ LOG_DIR=$'/data/logs/nginx\r'
+ LOG_PATH=$'/data/logs/nginx\r20160708\r\r'
+ echo $'date:20160708\r\r'
date:20160708
+ echo $'LOG_DIR:/data/logs/nginx\r\r'
LOG_DIR:/data/logs/nginx
+ echo $'LOG_PATH:\r'
LOG_PATH:
+ echo -e $'/data/logs/nginx\r20160708\r\r\r'
20160708gs/nginx

原来该脚本是在windows下写的 换行符为\r\n,而linux换行符为\n \r为回到行首,所以会出现这样的问题。
以后可以在执行windows文件前 用dos2unix命令转换文件

分享到:
评论

相关推荐

    windows下上传shell脚本不能运行的解决方法

    当一个在Windows环境下创建的shell脚本被上传到Linux服务器时,这些CRLF字符在Linux系统中可能会引起解析错误,导致脚本无法运行。以下是一些解决这个问题的方法: 1. **查看文件模式** 在Linux服务器上,你可以...

    windows的文档转linux格式的东西

    在Windows环境下创建的文本文件(如脚本或代码),转移到Linux环境后可能会遇到换行符不一致、编码问题等,导致无法正常运行。为了解决这一问题,我们引入了"dos2unix"工具,它是标题和描述中提到的关键知识点。 ...

    Linux和windows中的换行符差异问题.docx

    标题“Linux和Windows中的换行符差异问题”指的是在Linux和Windows操作系统中,文本文件的换行方式存在差异,导致跨平台操作时可能会遇到显示不正常的问题。在Linux系统中,每行的结束通常只使用一个换行符(LF,...

    linux运维常见的22个故障排查和解决方法

    因此,当在Windows环境下创建的脚本文件上传到Linux服务器后,每一行末尾都会有一个多余的`CR`(回车)字符,这会导致脚本解释器无法识别脚本文件。 **解决方案**: 1. **重新编写脚本**:直接在Linux环境下编写...

    astyle3.1-for-linux-windows.zip

    2. **运行AStyle**:在Linux系统下,将AStyle添加到PATH环境变量,然后在终端输入`astyle`即可使用;在Windows系统下,双击执行文件或在命令提示符中指定路径运行。 3. **格式化代码**:在需要格式化的源代码文件...

    linux下dos转unix

    标题"linux下dos转unix"指的是将DOS格式的文件转换为Unix格式,确保在Linux系统中正确运行,避免因行结束符不匹配导致的脚本执行错误。标签“dos转unix”进一步强调了这一操作的重要性。 转换工具有多种,其中最...

    ubuntu下让python脚本可直接运行的实现方法

    然而,可能会遇到一个常见的问题:如果你的Python脚本是在Windows环境下编写并转移到Ubuntu的,可能会出现由于行尾字符不同导致的错误。Windows使用`CRLF`(回车换行)作为行结束符,而Linux使用`LF`(换行)。这种...

    浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题

    例如,服务器可能运行在Unix/Linux环境下,而实际上脚本需要在Windows环境下运行,此时可能会出现换行符不被正确处理的问题。 4. 错误的换行符使用:在极少数情况下,OCR扫描技术可能会出现识别错误,导致在复制...

    dos2unix-7.4.0-win64.zip

    sh文件是Bash shell脚本,它们遵循UNIX/Linux的文本规范,所以如果在Windows环境下编写并试图在Linux系统中运行.sh文件,可能会遇到兼容性问题。dos2unix可以解决这个问题,将CRLF转换为LF,确保脚本在目标系统上...

    在windows10系统中搭建Rust语言开发环境详细介绍

    Rust可以在多种操作系统上运行,包括但不限于Linux、OS X、Windows、FreeBSD、Android和iOS等。这种广泛的兼容性使得Rust成为跨平台项目的一个强有力的选择。 #### 二、安装Rust 为了在Windows 10上搭建Rust开发...

    shell脚本中执行时提示“没有那个文件或目录”的解决办法

    当一个在Windows环境下创建的shell脚本被Linux尝试执行时,由于Linux无法识别`\r`字符,可能会导致脚本的解析出错,进而报出"bad interpreter: No such file or directory"的错误。 例如,脚本的开头通常包含解释器...

    Unix_Linux脚本编程_ perl部分.doc

    Perl 5 是当前广泛使用的版本,可以在多种操作系统上运行,包括 UNIX、Linux、OS/2、Windows 系统。 Perl 程序通常以 `#!/usr/bin/perl` 作为首行,声明这是一个 Perl 程序。Perl 是解释执行的,这意味着代码不需要...

    myScripts:脚本工具合集(抖音...)

    myScripts脚本工具合集Linux中空格和换行编码与Windows中不同,在小米手机阅读app中会出现乱码,需转换。换行Linux:\ n Windows:\ n \ r空格Linux:LF Windows:CR LF在NotePad ++软件中:编辑->文档格式转换->...

    [原创]unix2dos工具

    Unix2Dos是一款在MS-WINDOWS和DOS环境下使用的文本转换工具,主要用于在Unix/Linux和DOS/Windows系统之间进行文本文件格式的转换。由于这两种操作系统对文本文件的行结束符处理方式不同,Unix/Linux系统使用换行符(\...

    LINUX常用技巧

    在Windows系统中使用的文本编辑器(如Notepad)通常会将每行末尾存储为回车加换行(`\r\n`),而在Unix/Linux系统中,每行末尾只存储一个换行符(`\n`)。当在Linux环境中打开一个含有Windows换行符的文件时,可能会看到...

    GNU C代码格式化工具Indent Windows可执行文件

    同时,由于Windows系统与Unix/Linux系统在头文件包含路径上的差异,你可能需要修改源代码中包含的头文件路径,使其适应Windows环境。 为了顺利运行这个可执行文件,你需要确保你的系统已经安装了VC++ 6.0运行时库,...

    PHP 存储文本换行实现方法

    在不同的操作系统中,换行的表示方式有所不同,这可能会导致在跨平台环境中出现兼容性问题。本文将详细讲解PHP中如何正确地进行文本换行以及相关的知识点。 1. **换行符的种类**: - **LF (Line Feed)**:在Unix和...

    dos2unix-5.3-win32.zip

    【标题】dos2unix-5.3-win32.zip是一个针对Windows操作系统的压缩包,它包含了一款...通过这个压缩包,用户可以在Windows环境下轻松实现文本文件的格式转换,从而在Linux和Windows之间无缝切换,提高跨平台工作的效率。

    dos2unix_6.0.3

    这是因为某些软件或脚本是为DOS或Windows环境编写的,当尝试在UNIX或Linux环境下运行时,可能会因为行结束符的不同导致错误或无法正常工作。dos2unix工具可以解决这个问题,确保这些文件在新的操作系统下能够正确...

    unity,windows平台编码问题

    - 在Windows系统中,换行符通常由两个字符组成:回车(CR)和换行(LF),即‘CRLF’。 - Unix/Linux系统则只使用一个字符——换行(LF),即‘LF’。 **问题原因**: - 不同的操作系统或开发工具可能使用不同的换行符...

Global site tag (gtag.js) - Google Analytics