一、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学习笔记 - 运算符的更多相关文章

  1. shell学习笔记

    shell学习笔记 .查看/etc/shells,看看有几个可用的Shell . 曾经用过的命令存在.bash_history中,但是~/.bash_history记录的是前一次登录前记录的所有指令, ...

  2. [转帖][Bash Shell] Shell学习笔记

    [Bash Shell] Shell学习笔记 http://www.cnblogs.com/maybe2030/p/5022595.html  阅读目录 编译型语言 解释型语言 5.1 作为可执行程序 ...

  3. shell学习笔记汇总

    1.shell脚本中函数使用 函数定义在前,调用在后,顺序反了就没有效果了.函数调用为:函数名 参数列表 函数内部通过以下变量访问函数的参数:shell脚本函数中: $0: 这个脚本的名字 $n: 这 ...

  4. SHELL学习笔记----IF条件判断,判断条件

    SHELL学习笔记----IF条件判断,判断条件 前言: 无论什么编程语言都离不开条件判断.SHELL也不例外.  if list then           do something here   ...

  5. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  6. Dart学习笔记-运算符-条件表达式-类型转换

    Dart学习笔记-运算符-条件表达式-类型转换 一.运算符 1.算术运算符 + (加)- (减)* (乘)/ (除)~/ (取整) %(取余) 2.关系运算符 == (等等) != (不等) > ...

  7. SHELL学习笔记三

    SHELL学习笔记一 SHELL学习笔记二 SHELL学习笔记三 for 命令 读取列表中的复杂值 从变量读取列表 从命令读取值 更改字段分隔符 用通配符读取目录 which 使用多个测试命令 unt ...

  8. 【转】shell学习笔记(一)——学习目的性、特殊字符、运算符等

    1 学习shell的目的性 写之前我们先来搞清楚为什么要学shell,学习要有目的性 shell简单.灵活.高效,特别适合处理一些系统管理方面的小问题 shell可以实现自动化管理,让系统管理员的工作 ...

  9. shell学习笔记2: shell中的四则运算符

    shell中的四则运算符 n1,n2 :常量数字 char:运算符号 加,减,乘,除,取余(+,-,*,/,%) $a,$b:变量a,变量b 方法1 数字与符号之间需要有空格 不支持小数 expr n ...

随机推荐

  1. 第三百零五天 how can I 坚持

    今天去E世界拿抽的奖品,白去了 一趟,结果已经被拿过去了,明天还得去另一个地拿,太折腾了,今天走了1万4千多步. 哎,徐斌啊,出去见个面,这个折腾啊,受不了,想干他.开个玩笑. 黄东月,为什么打字莫名 ...

  2. 关于cocoapods添加静态库的奇葩配置

    不多说,直接上代码 当引入这个静态库时,一开始死活在编辑时找不到这个静态库. 直到看到这个贴子:http://stackoverflow.com/questions/19189463/cocoapod ...

  3. Ubuntu12.04 使用中遇到的问题

    这个随笔回记录使用Ubuntu遇到的一些问题   不定期进行整理和分类 1.Question:   ubuntu 无法检测包或者源码包 Description:Ubuntu软件中心打开时报错  无法检 ...

  4. 【Java】C/C++与Java的简单比较

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/5827273.html     C/C++:            编译(不同的系统编译出不同的机器码,所以同一 ...

  5. 织梦dedecms后台添加图片style全部都变成st<x>yle的解决办法

    可乐站长在建站的时候,上传缩略图喜欢输入图片路径,不喜欢上传图片,有几次我上传图片路径为:/style/image/**.jpg,然后返回修改后,图片为路径却为:/st<x>yle/ima ...

  6. iOS-default.png启动图片

    我在xcode5下写的代码,我下载了iOS6的模拟器,我用iOS6和iOS7的模拟器切换运行,有的时候可以运行有的时候不可以运行,报错: 2013-11-17 16:49:04.049 sim[474 ...

  7. CKeditor3.6.2 配置与精简

    一.使用方法: 1.在页面<head>中引入ckeditor核心文件ckeditor.js <script type="text/javascript" src= ...

  8. 如何克隆路由器MAC地址,怎么操作?

    路由器的“MAC地址克隆”的意思是: 不克隆时,从外网访问你的电脑,获得的MAC地址是路由器的mac地址. 克隆后,从外网访问你的电脑,获得的MAC地址是你电脑网卡的mac地址. 实用举例如下: 中国 ...

  9. 使用charles 抓包

    1.保证手机和Mac连接的是同一个无线局域网 2.在Mac上打开Charles Proxy,菜单栏操作:Proxy→Proxy Setting,检查端口,一般保持默认,HTTP Proxy端口为888 ...

  10. Codeforces Round #250 (Div. 1) D. The Child and Sequence 线段树 区间取摸

    D. The Child and Sequence Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest ...