变量
变量是在程序中保存用户数据的一段内存存储空间,变量名是内存空间的首地址
字母、数字、下划线组成,不能以数字开头
原则:直接使用,不需要变量声明
格式:变量名 = 变量的值
环境变量
关闭窗口即会失效
若要永久生效,再 ~/.bashrc上编辑
若要所有用户都生效,需再/etc/bashrc编辑
(编辑都需要再root用户下)
alias用法
位置变量
概念:当一条命令或脚本执行时,后面可以跟多个参数,可以使用位置变量来表示该参数
当执行 test1.sh 脚本时,第一个参数为 hello 到第四个参数可以使用特殊的符号表示,如: $1 $2 $3
……
常见的位置变量
例:
sh test1.sh hello world 123 456
1
$0 : 脚本名
$1 - $9 : 1 -9 个参数
${10} :10 以上的参数需要大花括号括起
$* : 所有参数
$@ : 所有参数
$# : 参数个数
$$ : 当前进程的 PID
$! : 上一个后台进程的 PID
$? : 上一个命令的返回值状态码, 0 为成功
变量赋值
$( )=``
四种变量赋值方法
常量直接赋值,read命令键盘输入,使用位置参数,反引号或$()读取命令
shell中默认变量是全局变量
变量的运算
[root@server ~] # expr 1 + 1 # 注意 + 左右必须要有空格
2
[root@server ~] # expr 1+1 # 否则原样显示
1 + 1
[root@server ~] # a=1
[root@server ~] # b=2
[root@server ~] # expr $a + $b # 支持变量
3
[root@server ~] # let num=1+2 # let+echo 等价于 expr
[root@server ~] # echo $num
3
[root@server ~] # let num=1 + 2 # 注意 let 中运算符左右不能由空格
-bash : let: + :语法错误 : 需要操作数 ( 错误符号是 "+" )
[root@server ~] # echo $((1+2))
3
[root@server ~] # echo $((5%3))
2
[root@server ~] # echo $((3%5))
3
[root@server ~] # echo $((1-5))
-4
[root@server ~] # echo $((2 * 5)) # 可以有空格
10
[root@server ~] # echo $((5.2-5)) # 只支持整数运算
-bash : 5 .2-5 :语法错误 : 无效的算术运算符 ( 错误符号是 ".2-5" )
[root@server ~] # echo $[2+3] # [] 等价于 (())
5
[root@server ~] # echo $[2.5+3] # # 只支持整数运算
-bash : 2 .5 + 3 :语法错误 : 无效的算术运算符 ( 错误符号是 ".5+3" )
双圆括号不支持小数,只支持整数
# 返回变量长度
[root@server ~] # str1="hello world"
[root@server ~] # echo ${#str1}
11
有了负号后,从最右边开始截,仍是向右截
精准查找
MIB进制1024,MB1000
查看命令是否执行成功