这哪里是$var"abc"中间有换行符,根本就是上面的输出有问题
echo "123" > tmp.txt #此行没有输出任何东西在屏幕上
var= cat tmp.txt;echo $var"abc" #此行会先输出123在屏幕上,因为cat tmp.txt了,看样子你是想把cat出来的123赋值给var,但是实际上并没有赋值成功,你的语法有问题,所以cat之后会输出123并且换行,因此var是空值,后面实际执行是echo "abc"
echo "123""abc" #此行输出123abc没啥说的
---------------------------------------------------------------
调试shell脚本可以使用 sh -x ****.sh,有详细输出内容
var= cat tmp.txt;echo $var"abc" 改成如下的形式
var= `cat tmp.txt`;echo $var"abc"或者 #注意不是单引号,是tab键上面1前面的那个符号
var=$(cat tmp.txt);echo $var"abc"
你每次都是把b添加进去,相当于a[0]=b,a[1]=b ... a[n]=b,所以a中的每个元素都是相同的
假设b=[0,1,2],a.append(b)和a.append([0,1,2])是不一样的,看下面的例子
>>> b=[0,1,2]
>>> b
[0, 1, 2]
>>> a=[]
>>> a.append(b)
>>> a.append([0,1,2])
>>> a
[[0, 1, 2], [0, 1, 2]]
>>> b.append(3)
>>> a
[[0, 1, 2, 3], [0, 1, 2]]
>>>