shell程序中变量可分为3种
局部变量
环境变量
位置变量
shell语言是一种解释型语言
C、java是一种编译型语言
C、java使用变量之前必须提前定义变量,并且指明变量类型
shell无需事先声明,赋值的时候就完成了变量的定义。
局部变量
指的是只在当前的进程和程序中有效的变量
shell程序的变量是无数据类型的,可以使用同一个变量存放不同数据类型的值。
变量赋值之后只需要在变量前加一个$符号即可访问变量的值。
可以用等号=给变量赋值。
变量的值如果是不带空格的字符串,则可以不加引号。
变量输出使用echo命令。
eg:
#!/bin/bash
#bianliang.sh
a=123
b=1.23
c=xyz
d=efgh xyz
e='efgh xyz'
echo $a
echo $b
echo $c
echo $d
echo $e
环境变量
环境变量是在一个用户所有进程中都可以访问的变量。如PATH环境变量。
export可以查看系统环境变量表。
环境变量访问和shell一样需要加$符合。
使用export定义环境变量,环境变量名均为大写。
eg:
export XX=1234
echo $XX
系统环境配置文件
在文件/etc/profile中定义
如在profile下加入两行
export A1=hello
export A2=12345
则会在系统重启后重新加载。
位置变量
是shell程序在运行时传入的参数。程序中可以用变量的形势来调用这些参数。
这些参数被存放在1到9的0个特殊变量名中,被形象的成为位置变量。表示为$5
shell的运算符
shell运算符可以实现变量赋值、算术运算、测试、比较等功能。
eg:
STR=123
echo $STR
eg:用shell脚本进行数学运算
#!/bin/bash
#4.3.sh
s=0
t=`expr $1**$2`
t=$[t*3]
s=$[s+t]
t=$[$1**2]
t=$[t*4]
s=$[s+t]
t=`expr $2*5`
s=$[s+t]
s=$[s+6]
echo $s
实际运行的时候需要给变量赋值
eg:
./4.sh 2 3