SHELL中$[num1]这种写法是什么意思?num1=$[2*3] num2=$[1+5]if test $[num1] -eq $[num2]
1 回答
pardon110
TA贡献1038条经验 获得超227个赞
在shell中是test操作命令,通常用来测试文件,比较数字,字符串。而代码语句的[]表示进行基本的算数运算。$在shell中通常表示对变量内容的引用。其中 -eq是测试条件中的操作符,判断是否相等
num1=$[2*3] #计算表达式2*3的值赋给变量num1
test $[num1] - eq $[num2] # 比较数值变量num1与数值变量2是否相等
需要注意的是
在shell中赋值时,=号两边不能有空格,右边值默认为字符串类型,
在sell中变量的定义与使用是两个概念,定义完变量,在使用变量值时,需要在变量名前加$符号
简单来讲 $[num1] 是表示使用一个数值变量,
而$str则是使用一个字符串变量,
${nam}这种形式则表示为进行对变量的使用(不确定变量类型)
对于 a=3+7 ,若$a则值为字符串3+7,若$[a]则对其内容值进行运算后的结果为10。前者默认为字符串,后者则是程序表达式语句。前者相当于其它语言中的对字符加了单双引号,后者类似js或python语言中的eval函数传入一个字符串,通过相应解释器进行评估计算
- 1 回答
- 0 关注
- 3238 浏览
添加回答
举报
0/150
提交
取消