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变量与算术运算的更多相关文章
- Linux Shell变量
200 ? "200px" : this.width)!important;} --> 介绍 变量是shell脚本中必不可少的组成部分,在脚本中使用变量不需要提前声明.在ba ...
- shell脚本之算术运算和逻辑运算
目录 算术运算 赋值运算 逻辑运算 短路运算和异或 条件测试 数值测试 字符串测试 文件及其属性测试 存在性测试 存在性及类别测试 文件权限测试 文件特殊权限测试 文件大小测试 文件是否打开 双目测试 ...
- 2.8 补充:shell变量引用方式
一 变量 变量:本质上是程序中保存用户数据的一块内存空间,变量名就是内存空间地址. Shell中:变量可由字母数字和下划线组成,以字母或下划线开头. 命名:PATH=/sbin ...
- shell变量与运算
shell变量与运算 @(0003 shell编程) 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$号,只有引用变量的值时才使用$号.也就是说在内存中,标记变量的变量名称是str,而不 ...
- shell变量
定义变量 定义变量时,变量名不加美元符号($),如: variableName="value" 注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样.同时,变量名 ...
- linux中shell变量$#,$@,$0,$1,$2的含义解释
linux中shell变量$#,$@,$0,$1,$2的含义解释: 变量说明: $$ Shell本身的PID(ProcessID) $! Shell最后运行的后台Process的PID $? 最后运行 ...
- awk使用shell变量
awk使用shell变量 (可以计算浮点数) 其实在awk里,是不能直接使用shell变量的 方法是:awk -v 选项让awk 里使用shell变量 TIME=60 awk -v time=&qu ...
- shell变量详解
1 shell变量基础 shell变量是一种很"弱"的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义.所以若要进行数学运算,必须使用一些命令例如let.de ...
- 三、Shell变量类型和运算符
一.Shell变量的应用 1.Shell变量的种类 ·用户自定义变量:由用户自己定义.修改和使用 ·预定义变量:Bash预定义的特殊变量,不能直接修改 ·位置变量:通过命令行给 ...
随机推荐
- 【CVE-2020-1948】Apache Dubbo Provider反序列化漏洞复现
一.实验简介 实验所属系列: 系统安全 实验对象:本科/专科信息安全专业 相关课程及专业: 计算机网络 实验时数(学分):2 学时 实验类别: 实践实验类 二.实验目的 Apache Dubbo是一款 ...
- sqlalchemy delete object
In SQL Alchemy you are deleting Objects that you get with a query from the database. This you can do ...
- M1配置php环境完整版(用于M1芯片的Mac中,php开发环境,比如wordpress、"或wp"、emlog pro、typecho等本地开发环境的配置)
因为macbook发布的M1是基于arm架构的,导致很多软件在短时间没无法兼容,其中包括php的很多集成开发环境软件.于是需要手动配置.网上的信息也是零七八碎,故制作了这个完整的教程. 本教程基于的m ...
- 纯前端实现词云展示+附微博热搜词云Demo代码
前言 最近工作中做了几个数据可视化大屏项目,其中也有用到了词云展示,以前做词云都是用python库来生成图片显示的,这次用了纯前端的实现(Ctrl+V真好用),同时顺手做个微博热搜的词云然后记录一下~ ...
- (一)初识MySQL
JavaEE:企业级Java开发 Web 前端(页面:展示,数据) 后台(连接点,连接数据库JDBC,链接前端(控制,控制视图跳转和给前端传递数据)) 数据库(存数据,Txt,Excel,word) ...
- Part 20 Create custom service in AngularJS
Whenever the case changes from lower to upper, a single space character should be inserted. This mea ...
- 25.A Famous Music Composer
描述 Mr. B is a famous music composer. One of his most famous work was his set of preludes. These 24 p ...
- silky微服务的应用服务和服务条目
目录 服务的定义 服务条目 根据服务条目生成WebAPI 服务条目的治理特性 缓存拦截 服务条目的例子 服务的实现 开源地址 在线文档 服务的定义 服务接口是微服务定义服务的基本单位,定义的应用服务接 ...
- python实现分水岭算法
目录: 问题:分水岭算法对图像分割很有作用,怎么把对象分割开来的?分水岭算法是比较完美的分割,跟前面的讲的轮廓不一样! (一)原理 (二)实现 (一)原理 opencv中的分水岭算法是基于距离变换的, ...
- [cf461D]Appleman and Complicated Task
假设该矩形是aij,那么有a(i,j)=a(i-1,j-1)^a(i-1,j+1)^a(i-2,j),不断递归下去可以发现a(i,j)=a(1,y-x+1)^a(1,y-x+3)^--^a(1,x+y ...