var1=$1 var2=$2 var3=$3
echo "$var1 $var2 $var3" 输出时,存在数据相互覆盖的问题
1.存在\r,按照下边方式对字符进行处理
var1=$(echo $var1| tr -d '\r')
var2=$(echo $var2| tr -d '\r')
var3=$(echo $var3| tr -d '\r')
echo "$var1 $var2 $var3"
2.存在\n,按照下边方式对字符进行处理
var1=$(echo $var1| tr -d '\n')
var2=$(echo $var2| tr -d '\n')
var3=$(echo $var3| tr -d '\n')
echo "$var1 $var2 $var3"
3.存在 \r 也存在 \n
var1=$(echo $var1| tr -d '\n' |tr -d '\r')
var2=$(echo $var2| tr -d '\n' |tr -d '\r')
var3=$(echo $var3| tr -d '\n' |tr -d '\r')
echo "$var1 $var2 $var3"
初步解释,echo在这个场景下的行为也是很符合设计的。原则上在echo不换行输出模式下,输出字符串中要求换行,则echo控制流只能让输出流重新回到了当前行的首字符,相当于一次软回车,这样就出现了覆写、覆盖了!