变量
变量是在程序中保存用户数据的一段内存存储空间,变量名是内存空间的首地址
字母、数字、下划线组成,不能以数字开头
原则:直接使用,不需要变量声明
格式:变量名
=
变量的值
环境变量
关闭窗口即会失效
若要永久生效,再 ~/.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
查看命令是否执行成功