Shell变量与算术运算

区分两个 Shell

Shell 语言与 Shell 解释器

Shell 语言

写 Shell 脚本使用的是 Shell 语言,Shell 既是一种命令语言,又是一种程序设计语言。

  • 作为命令语言,它交互式地解释和执行用户输入的命令
  • 作为程序设计语言,它定义了各种变量和参数,并提供了许多在高级语言中才具有的控制

Shell 脚本解释器

解析Shell 使用的是 Shell 脚本解释器,一个用 C 语言编写的程序,它是用户使用 Unix/Linux 的桥梁,接口程序。常见的脚本解释器有 bash、sh、csh、ksh......

Shell 的变量

学习 Shell 变量的时候,对变量的定义和使用有一丝迷惑,看下面这个程序。

运行结果

1+2
xiaoming

看到这个运行结果,我感到出乎意料,首先 c 经验不等于3,d 表示字符串不加引号竟然不报错!!!!!!不知到 Linux 课上有没有讲过,可惜我没有那一门课,百度......

Shell 的所有变量默认都是字符型。

所以 a、b、c 直接被当做字符串啦,那变量 a、b 如何进行算术运算呢? 查看 菜鸟教程

使用 expr 命令,例如 c=`expr $a+$b` 可以得到正常的结果。同时还有其他方式可以进行求值。 具体参考  Linux Shell脚本攻略:shell中各种括号()、(())、[]、[[]]、{}的作用

使用 $[] 方式  c=$[$a+$b],类比 [] 不加前面的$,表示进行(算数比较、字符串 ==|!= 的比较、使用数组索引)。

使用 $(())方式 c=(($a+$b)) 只要括号中的运算符、表达式符合C语言运算规则,都可用在$((exp))中,甚至是三目运算符。

思考:当两个字符串使用 算数运算的时候会得到什么结果呢

 

参考链接

Shell中各种括号()、(())、[]、[[]]、{}的作用和区别

Shell变量和数据类型

[Bash Shell] Shell学习笔记

posted @ 2018-08-18 16:06  _春华秋实  阅读(2753)  评论(0编辑  收藏  举报