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

Question

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

#脚本部分内容
#!/bin/sh -x

SCRIPT_PATH=$(cd `dirname $0`; pwd)
. ${SCRIPT_PATH}/../env/env.properties

### USE FOR Jmeter Test
PPVERSION=`date +%Y%m%d-%H%M%S`

JMETER_HOME=${prop_appHome}/current/packages/apache-jmeter-3.3/bin
JMX_HOME=${prop_appHome}/current/config/local.jmx
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命令

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值