n=1
for i in `cat 1.txt`do # 循环1.txt
num=`sed -n "${n}p" 2.txt` # 获取2.txt对行的数字
sum=$(($num + $i)) # 两数相加
echo $sum # 打印结果
n=$(($n + 1))
done
一、问题描述1
在 linux 终端中,如果变量没有指定类型,则默认为字符型。
2
当然了,对字符型变量进行相加会得到我们不想要的结果。
END
二、解决办法
要想将一个变量声明为指定类型,其语法为:
declare(或typeset) [-aixr] 变量名
参数:
-a :声明为数组类型
-i :声明为整型
-x :声明为环境变量(功能与 export 相同)
-r :声明为只读类型,此变量声明后不能更改内容,也不能撤销
我们从最简单的开始示范。
1)将 a,b,c 声明为整型
现在再来输出 c ,可以看到它是 a 与 b 之和 3。
2)声明为数组
声明一个有两个元素的数组 arr[2]
再给数组的元素分别赋值
输出数组的元素。注意,数组元素的输出需要在其前后加上{ }。
下面是两种错误的输出方法。当然,结果也会出错。
3)至于声明为环境变量和只读类型,就不再分别举例演示了,大家可以自己去试试。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)