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命令转换文件

猜你喜欢

转载自sunmit1024.iteye.com/blog/2323581
今日推荐