变量
4.1 系统变量
1)常用系统变量
$HOME
、$PWD
、$SHELL
、$USER
等
2)案例实操
#查看系统变量的值
echo $HOME
############################################
/root
############################################
#显示当前shell中所有变量:set
set
############################################
BASH=/bin/bash
BASH_ALIASES=()
BASH_ARGC=()
BASH_ARGV=()
BASH_CMDS=()
BASH_LINENO=()
BASH_SOURCE=()
....
############################################
4.2 自定义变量
1)基本语法
- 定义:变量=值
- 撤销:
unset
变量 - 定义静态变量:
readonly
变量,注意:不能unset
2)变量定义规则
- 变量名称可以由字母、数字和下划线组成,但不能以数字开头,环境变量名建议大写
- 等号两侧不能有空格
- 在bash中,变量默认类型都是字符串类型,无法直接进行数值运算
- 变量的值如果有空格,需要使用双引号或单引号括起来
3)案例实操
#定义变量A
A=5
#撤销变量A
unset A
#定义静态变量,不能撤销
readonly B=3
#定义成全局变量
export B
4.3 特殊变量
-
$n
1)基本语法
$n
:n
为数字,$0
代表该脚本名称,$1~$9
代表第一到九个参数,十以上的参数需要使用大括号${10}
2)实例操作
#输出脚本名称及参数的值 touch params.sh #创建文件 vim params.sh #编辑文件内容如下 ######################################### #!/bin/bash echo "$0 $1 $2" ######################################### chmod 777 params.sh #设置文件权限 ./params.sh param1 param2 #执行输出如下内容 ########################################## params.sh param1 param2 ##########################################
-
$#
1)基本语法
$#
:获取所有输入参数个数,用于循环2)案例操作
#获取输入参数个数 vim params.sh ######################################### #!/bin/bash echo "$0 $1 $2" echo $# ######################################### ./params.sh param1 param2 #执行输出如下内容 ########################################## params.sh param1 param2 2 ##########################################
-
$*
,$@
1)基本语法
$*: 代表命令行中所有参数,把所有参数看成一个整体
$@:代表命令行中所有参数,把每个参数区别对待
2)案例操作
#打印输入的所有参数 vim params.sh ######################################### #!/bin/bash echo "$0 $1 $2" echo $# echo $* echo $@ ######################################### ./params.sh param1 param2 #执行输出如下内容 ########################################## params.sh param1 param2 2 param1 param2 param1 param2 ##########################################
-
$?
1)基本语法
$?
:最后一次执行的命令的返回状态,如果这个变量值为0
,证明上一次命令正确执行,如果这个值非0
,证明上一个命令执行不正确2)案例操作
#判断命令是否正确执行 ./params.sh 1 2 echo $? ################################## 0 ##################################