shell 变量

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

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

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

定义和引用变量

1
2
3
4
5
6
7
8
#!/bin/sh

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

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

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

注意事项

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

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

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

使用变量

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

1
2
3
4
5
6
7
#!/bin/sh
A=123456 #定义,变量名 和 字面量 前后都一定不可以用空格,否则被当做命令,报错
B=TEST #不加" " 或 '',合法,正常输出不报错。
echo $A #引用变量
echo $B
echo ${b}

输出结果

123456
TEST

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

变量计算

1.变量计算

` ` 等价于 $( )

1
2
3
4
5
#!/bin/sh
a=100;
b=200;
echo $(($a+$b)) #最外层也需要一个$,表示结果是一个变量
echo $((1+2*3))

2.浮点数

1
2
3
4
5
6
#!/bin/sh
c=$(echo "1.1+2.2" | bc)
echo $c

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

3.加减乘除

1
2
3
4
#!/bin/sh
a=1
b=2
$[a + b]

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

1
2
3
4
5
6
#!/bin/sh
a=10
b=20

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

5.逻辑运算符

1
2
3
4
5
6
7
8
9
10
11
12
13
14
-f         # 文件
-d # 目录

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

-a # and
-o # or

-z # 空字符串