最近写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换行符,运行正常!