和 JavaScript 一样都是弱类型语言,并且默认是字符串类型

declare 命令

declare 命令

  1. 用来声明变量类型

  2. 语法:declare [+/-] [选项] 变量名

    选项 含义
    - 给变量设定类型属性
    + 取消变量的类型属性
    -a 将变量声明为数组类型
    -i 将变量声明为整数型
    -x 将变量声明为环境变量
    -r 将变量声明为只读变量
    -p 显示指定变量的被声明的类型
  3. 示例代码:

    a=1
    b=2
    c=$a+$b
    echo $c
    # 1+2
    
    # 声明成整型
    declare -i c=$a+$b
    echo $c
    # 3
    
    # 取消变量的类型属性
    declare +i c
    c=$a+$b
    echo $c
    # 1+2
    
    # 给变量设定类型属性
    declare -i c="3"
    # 显示指定变量的被声明的类型
    declare -p c 
    # declare -i c="3"
    
    # 声明环境变量
    declare -x kk=1
    # 查看所有变量
    set | grep kk
    # 只查看系统变量
    env | grep kk
    
    # 只读
    declare -r x
    x=2
    # bash: x: readonly variable
    

数组

# 声明为数组类型
declare -a names;
names[0]=zhangsan
names[1]=lisi

# 默认只打印第一个元素
echo ${names}
# zhangsan

# 打印第2个元素
echo ${names[1]}
# lisi

# 打印全部
echo ${names[*]}
# zhangsan lisi

声明环境变量

  1. export 最终执行的是 declare -x 命令

  2. declare -p 可以查看所有的类型

    export NAME=zhangsan
    # 等价
    declare -x NAME=zhangsan
    

只读属性

declare -r gender=m
gender=f
# -bash: gender: readonly variable

查询变量属性

  1. declare -p 查询所有变量的属性

  2. declare -p 变量名 查询指定变量的属性

数值运算的方法

只要用declare声明变量的时候指定类型就可以进行数值运算

expr 或 let

SHELL
SHELL
num1=2
num2=3

# + 号左右两侧必须有空格,否则还是整块输出
sum=$(expr $num1 + $num2)
echo $sum
# 5

sum2=$(($num1+$num2))
echo $sum2
# 5

sum3=$[$num1+$num2]
echo $sum3
# 5
d=$(date)
echo $d
# 2023年 7月11日 星期二 08时31分41秒 CST

优先级

优先级 运算符 说明
13 -、+ 单目负、单目正
12 !、~ 逻辑非、按位取反或补码
11 *、/、% 乘、除、取余
10 +、- 加、减
9 <<、>> 按位左移、按位右移
8 <=、>=、<、> 小于等于、大于等于、小于、大于
7 ==、!= 等于、不等于
6 & 按位与
5 ^ 按位异或
4 | 按位或
3 && 逻辑与
2 || 逻辑或
1 =、+=、-=、*=、/=、%=、&=、^=、|=、<<=、>>= 赋值、运算且赋值
result=$(((1+2)*4/2))
echo $result
# 6
打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. declare 命令
    1. 1.1. declare 命令
    2. 1.2. 数组
    3. 1.3. 声明环境变量
    4. 1.4. 只读属性
    5. 1.5. 查询变量属性
  2. 2. 数值运算的方法
    1. 2.1. expr 或 let
    2. 2.2. 优先级