shell 变量
shell 是解释型的语言,类似的有python。
shell 是没有类型的,分局部变量
和 环境变量
- 局部变量,只在创建shell 的脚本中命名用,其他shell不能访问
- 环境变量,在当前用户或系统环境中生效
转义字符在 " " 中是起做用的 bash 只支持 整数 和 字符串,不支持浮点数,如果要使用浮点数,需要借助 bc。
定义和引用变量
代码语言:javascript复制#!/bin/sh
# 声明变量时,不要出现空格
A=123456
B='TEST'
# 使用一个变量使用 $变量名
echo $A
定义变量时,变量名不加,而在使用变量时,需要加,格式:
注意事项
变量名和等号之间不能有空格,切记很多时候问题就是出在这里。
变量名的命名须遵循如下规则:
- 命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
- 中间不能有空格,可以使用下划线
_
。 - 不能使用标点符号。
- 不能使用bash里的关键字(可用help命令查看保留关键字)。
使用变量
声明变量后,要需要将变量输出,输出变量需要使用 echo $变量名
。
#!/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 # 空字符串