为了账号安全,请及时绑定邮箱和手机立即绑定

SHELL中$[num1]这种写法是什么意思

SHELL中$[num1]这种写法是什么意思

点丶阙4015137 2018-12-06 17:42:12
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函数传入一个字符串,通过相应解释器进行评估计算


查看完整回答
反对 回复 2018-12-07
  • 1 回答
  • 0 关注
  • 3151 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信