Shell学习笔记 - 运算符
一、Declare命令
1. 命令格式
declare [+/-] [选项] 变量名
其中:
-: 给变量设定类型属性
+:取消变量的类型属性
2. 参数说明
-i:将变量声明为整型
-a:将变量声明为数组类型
-x:将变量声明为环境变量
-r:将变量声明为只读变量
-p:显示指定变量被声明的类型
3. 示例
1)-i示例: 声明整型变量,由于shell默认变量的类型是字符串类型,如果需要进行数值的运算,则需要将变量转化为整型
#!/bin/bash a=
b= sum=$a+$b
echo "默认字符串类型相加结果:"
echo $sum declare -i sum=$a+$b
echo "声明为整型相加结果:"
echo $sum #输出结果:
默认字符串类型相加结果:
+
声明为整型相加结果:
2)-a示例:声明数组
#!/bin/bash # 声明数组
declare -a arr #可以不写,shell可以通过检测中括号识别数组
arr[]="a"
arr[]="b"
arr[]="c" # 默认打印数组第一个元素
echo ${arr} # 打印第二个元素
echo ${arr[]} # 打印所有的元素
echo ${arr[*]} #输出结果:
a
b
a b c
3)-x示例:声明全局变量
-x的功能和export 变量名功能相同,export只是declare -x 变量名的快捷方式
#!/bin/bash name="test"
declare -x name # 等同效果 export name echo $name #输出结果:
test
4) -r示例:声明只读变量
-r会将变量变为只读,变为只读后,将不能进行修改,删除,也不能取消只读,只能重启才能取消。
#!/bin/bash name="test"
declare -r name
echo $name name="abc"
echo $name #输出结果:
test
test.sh: line : name: readonly variable
test
5)-p示例:显示指定变量被声明的类型
#!/bin/bash declare -i a
declare -p a declare -a b
declare -p b declare -x c
declare -p c declare -r d
declare -p d #输出结果:
declare -i a=""
declare -a b='()'
declare -x c=""
declare -r d=""
二、数值运算的方法
1. expr方法
示例:
#!/bin/bash a=
b=
sum=$(expr $a + $b) # 加号两边一定要留空格,不然会当成字符串连接起来
echo $sum #输出结果:
2. $(()) 或 $[]方法
#!/bin/bash a=
b=
sum=$(($a+$b)) # 加号两边加不加空格,无所谓
echo $sum result=$[$a-$b]
echo $result #运行结果: -
Shell学习笔记 - 运算符的更多相关文章
- shell学习笔记
shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...
- [转帖][Bash Shell] Shell学习笔记
[Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html 阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...
- shell学习笔记汇总
1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...
- SHELL学习笔记----IF条件判断,判断条件
SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外. if list then do something here ...
- shell 学习笔记2-shell-test
一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...
- Dart学习笔记-运算符-条件表达式-类型转换
Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > ...
- SHELL学习笔记三
SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...
- 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等
1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...
- shell学习笔记2: shell中的四则运算符
shell中的四则运算符 n1,n2 :常量数字 char:运算符号 加,减,乘,除,取余(+,-,*,/,%) $a,$b:变量a,变量b 方法1 数字与符号之间需要有空格 不支持小数 expr n ...
随机推荐
- elisp语法
http://stackoverflow.com/questions/3855862/setq-and-defvar-in-lisp defvar, let, setq的语法分析: defvar in ...
- 了解RFC协议号
RFC是Request For Comment的缩写,意即“请求注解”,是由IETF管理,所有关于Internet的正式标准都以文档出版,但不是所有的RFC都是正式的标准,很多RFC的目的只是为了提供 ...
- CodeForces 689E Mike and Geometry Problem (离散化+组合数)
Mike and Geometry Problem 题目链接: http://acm.hust.edu.cn/vjudge/contest/121333#problem/I Description M ...
- codeforces 624B Making a String
Making a String time limit per test 1 second memory limit per test 256 megabytes input standard inpu ...
- [iOS 多线程 & 网络 - 2.4] - 大文件下载 (边下边写/暂停恢复下载/压缩解压zip/多线程下载)
A.需求 边下边写入硬盘 显示下载进度 暂停/恢复 下载 解压文件 多线程下载 B.基本知识 1.小文件下载 如果文件比较小,下载方式会比较多直接用NSData的+ (id)dataWithCon ...
- Linux命令之env:显示当前用户的环境变量
Linux系统里的env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令.下面来比较一下set,env和export命令的异同:set命令显示当前shell的变量,包括当前用户的 ...
- 精通Linux的“kill”命令
无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭.在Linux(还有Mac),你可以用一个"kill"命令强制终结它.在这个教程中,我们将展示给你多种 ...
- java操作redis之jedis篇
首先来简单介绍一下jedis,其实一句话就可以概括的,就是java操作redis的一种api.我们知道redis提供了基本上所有常用编程语言的clients,大家可以到http://redis.io/ ...
- Spring Controller参数为空串的处理方式
控制器参数为String类型 Spring框架接收到传入的空串后,此参数被赋值为空串,不为null. 控制器参数为非String类型 Spring框架接收到传入的空串后,此参数被赋值为null.
- Linux chmod命令修改文件与文件夹权限命令代码
在Unix和Linux的各种操作系统下,每个文件(文件夹也被看作是文件)都按读.写.运行设定权限. 以下转自:http://www.codeceo.com/article/linux-chmod-co ...