换行符引发的血案

最近写shell脚本,遇到变量拼接的问题。

#!/bin/sh
v1=apple
v2=pear
v3="${v1} ${v2}"
echo v3
结果输出"pear",v1的值始终不出来。
尝试了各种办法,包括:

v3="$v1 $v2"

v3=`echo $v1 $v2` ................

apple始终害羞着不出来。

查了很多资料,别人用类似写法,运行结果都正确,而我的运行结果永远都是v2,而且我发现不管拼接了多少个变量,拼接后始终只输出最后一个变量值。

蛋疼,绝望,抓狂。。。。。

无意中在一个帖子上看到类似问题,楼主是在windows下写的shell,然后传到unix上,也是只输出最后变量。楼主也是试了无数方法,最后绝望了,然后干脆在unix服务器上将脚本重写了一遍,然后运行,结果一切正常!

我笑了,因为我也是在windows下写的代码。

用sed -i 's/\r//' filename命令,将代码中的windows换行符替换成unix换行符,运行正常!


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值