请教一个变量运算的问题

sh/bash/dash/ksh/zsh等Shell脚本
回复
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06
送出感谢: 0
接收感谢: 0

请教一个变量运算的问题

#1

帖子 Dic4000 » 2008-12-14 21:20

代码: 全选

#!/bin/bash
a=BB35;
let a+=2;
echo $a;
请问
1:变量a存储的不是数字,得到执行结果却是2,为什么呢?
如果把

代码: 全选

let a+=2;
换成

代码: 全选

a+=2;
2:得到的结果是 BB352,两种形式的变量运算为何有这么大差异?
3:let命令应当用在哪里最好?
头像
goodluck1982
帖子: 171
注册时间: 2007-07-05 2:48
送出感谢: 0
接收感谢: 0

Re: 请教一个变量运算的问题

#2

帖子 goodluck1982 » 2008-12-14 22:09

不使用 let 时,bash就把a当成一个字符串 BB35 与 字符串 2 合并,成 BB352
使用let时,bash把a当成一个整数来看待,由于其值BB35不是整数,当0处理,于是再+2不就成了2了?
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06
送出感谢: 0
接收感谢: 0

Re: 请教一个变量运算的问题

#3

帖子 Dic4000 » 2008-12-14 22:14

自己解决了,let是用来执行整数算术运算的,a+=2这个语句是指单纯的字符串拼接。
Dic4000
帖子: 104
注册时间: 2008-09-10 21:06
送出感谢: 0
接收感谢: 0

Re: 请教一个变量运算的问题

#4

帖子 Dic4000 » 2008-12-14 22:16

goodluck1982 写了:不使用 let 时,bash就把a当成一个字符串 BB35 与 字符串 2 合并,成 BB352
使用let时,bash把a当成一个整数来看待,由于其值BB35不是整数,当0处理,于是再+2不就成了2了?
谢谢,才看到你的回复。
回复

回到 “Shell脚本”