shell 变量

2023-10-20 10:26:47 浏览数 (1)

shell 变量

shell 是解释型的语言,类似的有python。 shell 是没有类型的,分局部变量环境变量

  1. 局部变量,只在创建shell 的脚本中命名用,其他shell不能访问
  2. 环境变量,在当前用户或系统环境中生效

转义字符在 " " 中是起做用的 bash 只支持 整数 和 字符串,不支持浮点数,如果要使用浮点数,需要借助 bc。

定义和引用变量

代码语言:javascript复制
#!/bin/sh

# 声明变量时,不要出现空格
A=123456
B='TEST'

# 使用一个变量使用 $变量名
echo $A

定义变量时,变量名不加,而在使用变量时,需要加,格式:

注意事项

变量名和等号之间不能有空格,切记很多时候问题就是出在这里。

变量名的命名须遵循如下规则:

  1. 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
  2. 中间不能有空格,可以使用下划线 _
  3. 不能使用标点符号。
  4. 不能使用bash里的关键字(可用help命令查看保留关键字)。

使用变量

声明变量后,要需要将变量输出,输出变量需要使用 echo $变量名

代码语言:javascript复制
#!/bin/sh
A=123456      #定义,变量名 和 字面量 前后都一定不可以用空格,否则被当做命令,报错
B=TEST        #不加" " 或 '',合法,正常输出不报错。
echo $A       #引用变量
echo $B
echo ${b}

输出结果

123456 TEST

在控制台中 A,不打印任务字符,要 echo A 才正常输出。

变量计算

1.变量计算

` ` 等价于 $( )

代码语言:javascript复制
#!/bin/sh
a=100;
b=200;
echo $(($a $b))        #最外层也需要一个$,表示结果是一个变量
echo $((1 2*3))

2.浮点数

代码语言:javascript复制
#!/bin/sh
c=$(echo "1.1 2.2" | bc)
echo $c

d=`echo "1.1 2.2" | bc`        #等价操作
echo $d

3.加减乘除

代码语言:javascript复制
#!/bin/sh
a=1
b=2
$[a   b]

4.重要的计算,用这种 expr

代码语言:javascript复制
#!/bin/sh
a=10
b=20

val=`expr $a   $b`
echo "a   b : $val"

5.逻辑运算符

代码语言:javascript复制
-f         # 文件
-d         # 目录

-eg        # =
-ne        # !=        not equals
-lt        # <
-gt        # >
-le        # <=
-ge        # >=

-a         # and
-o         # or

-z         # 空字符串

0 人点赞