当前位置: 技术问答>linux和unix
一个有关shell中变量的问题
来源: 互联网 发布时间:2016-04-20
本文导语: foo=1 foo=$(($foo+1)) 这个语句应该怎么理解?? 我认为 $foo 是对foo的引用,他返回foo的值 1,所有变量都是按照字符串处理的,所以 1+1 应该返回的是字符串“1+1”本身,然后再对 $"1+1"进行引用,这个是我的理...
foo=1
foo=$(($foo+1))
这个语句应该怎么理解??
我认为 $foo 是对foo的引用,他返回foo的值 1,所有变量都是按照字符串处理的,所以 1+1 应该返回的是字符串“1+1”本身,然后再对 $"1+1"进行引用,这个是我的理解
但是,程序执行起来,还是按照数值计算的,1+1就等于了2,所以……,我不知道,我的理解哪里有问题,所以想请大侠帮忙解释一下
foo=$(($foo+1))
这个语句应该怎么理解??
我认为 $foo 是对foo的引用,他返回foo的值 1,所有变量都是按照字符串处理的,所以 1+1 应该返回的是字符串“1+1”本身,然后再对 $"1+1"进行引用,这个是我的理解
但是,程序执行起来,还是按照数值计算的,1+1就等于了2,所以……,我不知道,我的理解哪里有问题,所以想请大侠帮忙解释一下
|
$(())是数制转换
如
echo $(( 2#101011 )) # 数制转换,不是一个注释
结果是43,
你的是默认十进制,所以得到了 2
我是在“Advanced Bash-Scripting Guide “这本书的
第 3 章 特殊字符 查到的。
如
echo $(( 2#101011 )) # 数制转换,不是一个注释
结果是43,
你的是默认十进制,所以得到了 2
我是在“Advanced Bash-Scripting Guide “这本书的
第 3 章 特殊字符 查到的。