Linux 错误: $'\r': command not found

今天药忘吃喽~ 2022-05-26 09:27 282阅读 0赞

Question

前段时间写脚本出现了$'\r': command not found问题。

  1. #脚本部分内容
  2. #!/bin/sh -x
  3. SCRIPT_PATH=$(cd `dirname $0`; pwd)
  4. . ${SCRIPT_PATH}/../env/env.properties
  5. ### USE FOR Jmeter Test
  6. PPVERSION=`date +%Y%m%d-%H%M%S`
  7. JMETER_HOME=${prop_appHome}/current/packages/apache-jmeter-3.3/bin
  8. JMX_HOME=${prop_appHome}/current/config/local.jmx
  9. JMETER_LOGS_HOME=${prop_logHome}

Solution

其实log报错已经非常明确了,是linux无法解析$'\r'。这其实是windows与linux系统的差异导致的。

因为linux上的换行符为\n,而windows上的换行符为\r\n。所以脚本到linux上就无法解析了。

通常的处理办法主要有2种:

  • 处理办法1 set ff=unix

    vi hello.sh

    Esc进入命令行运行模式

    : set ff=unix

  • 处理办法2 dos2unix

    dos2unix hello.sh

    如果报command not found 是因为你没有安装,安装dos2unix插件即可。


Reference

[1]. 关于$’\r’: command not found错误的一点体会
[2]. shell脚本执行错误 $’\r’:command not found
[3]. set ff=unix;设置Linux中文件中每行后又尖括号的情况
[4]. set ff=unix
[5]. dos2unix命令将dos文件转换为unix格式
[6]. vi命令

发表评论

表情:
评论列表 (有 0 条评论,282人围观)

还没有评论,来说两句吧...

相关阅读