zl程序教程

您现在的位置是:首页 >  Javascript

当前栏目

前端运维之Shell运算符

2023-03-14 22:33:42 时间

Shell运算符

  • shell中的变量默认是字符串类型的,且是弱类型的。

declare

declare命令

  • declare用来声明变量类型。
  • declare [+/-] [选项] 变量名

选项

含义

-

给变量设定类型属性

+

取消变量的类型声明

-a

表示将变量声明为数组类型

-l

表示将变量声明为整数类型

-i

表示将变量声明为整数类型

-x

表示将变量声明为环境变量(相当于export [变量名]=[变量值])

-r

表示将变量声明为只读类型

-p

显示变量的类型标示

Demo

a=1
b=2
c=$a+$b
echo $c # 1+2

declare -i c=$a+$b # 表示声明整形变量
echo $c # 3 

declare +i c # 取消c变量的类型声明
c=$a+$b
echo $c # 1+2

declare -i $d=1
declare -p $c # declare -i $c="3"

# 声明环境变量
declare -x $e=6

set | grep e=10 # e=10
env | grep e=10 # e=10

declare -r x=10
x=11 # bash:x is readonly
复制代码

数组

  • 通过declare -a [变量名]可以声明一个数组类型的变量。

delcare -a names # 声明一个数组变量names

names[0]=wang
names[1]=haoyu
复制代码

当调用echo [数组类型]的时候默认只打印数组中的第一个:

需要额外注意的时候,调用数组类型的时候需要使用${数组}进行访问。因为数组类型表示是一个可计算的整体。

echo ${names} # wang

echo ${names[1]} # haoyu
复制代码

如果使用echo names[1]代表的意思就不同了,就是打印names这个变量然后再拼接上[1]字符串,就是haoyu[1]。需要使用

  • 通过*通配符打印数组中所有的内容。

echo ${names[*]} # wang haoyu

环境变量

通过declare -x xx=6可以声明一个环境变量xx的值为6

它与export xx=6是相同的效果都是声明环境变量语句,export内部实际调用的就是declare -x语句,语法糖而已。

只读属性

通过declare -r [变量]可以声明一个只读的变量。

查询变量属性

通过declare -p [变量]可以查看变量的类型属性。

变量数值运算的方法

  • 只要通过declare声明的变量指定类型,就可以进行数值的运算了。

expr以及let

通过exprlet关键字可以进行变量类型的计算

num1=1
num2=2
sum=$(expr $num1 + $num2) # 注意+运算符左右两边必须有空格
echo $sum # 3
复制代码
sum2=$(($num1 + $num2))
echo sum2 # 3 和上边是等价的
复制代码
sum3=$[$num1 + $num2]
echo sum3 # 3 和上边也是等价的
复制代码