文件格式不是unix导致sed,cat等读取文件后无法正常退出

#!/bin/bash
bucket_config="sync_log.log"
bucket_name=$(sed -n '1p' ${bucket_config})
echo "s3://${bucket_name}/xxxxx"
exit


读取一个文件的第一行,然后跟其他字符串拼接,由于sync_log.log这个文件的格式不是unix(CRLF,不是LF),读取是正确的,内容也获取了,但是
echo "s3://${bucket_name}/xxxxx"
变成了xxxxx${bucket_name} 类似正则表达式替换了前面的内容。

换个文件发现没问题,发现是因为这个文件是在windows下的图形界面(remote)下创建的,导致格式异常。用doc2unix sync_log.log转换成unix文本格式后就正常输出了
doc2unix要手动安装,apt-get install doc2unix

猜你喜欢

转载自lhdst-163-com.iteye.com/blog/2321629