变量分为那两个?
答:系统变量与用户自定义可配置变量;而shell里面可以叫全局变量或者局部变量。
常用系统变量有哪些?
答:$HOME(当前目录)、$PWD(当前所在路径查看)、$SHELL(当前的编辑器)、$USER(登录当前的用户)等。
实例操作;以常用环境变量作演示;命令执行echo +常用命令
使用命令env可以查看详细的环境变量
env | less可以看到更加精准查询(printenv | less--一样效果)
演示局部或者全局
如图:查看bash进程,ps -f只有一个全局;使用命令bash、再使用ps -f可以查看到pid:81649=ppid:81649;然后exit退出,再查看,发现只剩下一个全局bash。
set可以查看到用户自定义变量;下图使用命令为set | less
自定义变量
基本语法
定义变量:变量名=变量值;注意=号前后不能有空格
撤销变量:unset 变量名
声明静态变量readonly 变量,注意不能unset
变量定义规则
变量名称可以由字母、数字、下划线组成,但是不能以数字开头,环境变量名称建议大写。
等号两侧不能有空格。(如图,有空格会报错)
在bash中,变量默认类型都是字符串类型,无法直接进行数值计算。(后面)
变量值中间如果有空格需要使用单引号或者双引号括起来(如图1,会报错,图2、3即可正常输出)
图1
图2
图3
怎么判断是全局变量还是局部(参考上面env与set详解)下面图明显易见为局部变量
给liu这个变量添加到全局变量,使局部变量也可查询到,export提升为全局变量
只读变量、撤销变量
readonly只读变量
unset撤销变量,查询变量:set | less;如图1所示我们新建的自定义变量,删除的话unset 变量名如图2;图三已撤销。
图1
图2
图3
特殊变量
$n基本语法
$n(功能描述:n为数字,$0代表脚本名称,$1-$9代表1-9个参数;等于或者超过10的参数;需要用大括号如${10});备注:需要使用双引号才会生效,当成一个变量,单引号为一个值。
新建一个脚本,演示$n;脚本内容如下
新增一个脚本、进行赋权,输出脚本内容
$#基本语法
$#功能描述(获取所有输入参数个数,常用于循环、判断参数的个数是否正确以及加强脚本的健壮性)
演示案例;如图测试$#在脚本内加入,直接执行,发现个数(geshu)为0,再往下执行脚本,加上值,个数变为2
$*基本语法
$*功能描述(这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体),如图演示
$@基本语法
功能描述(这个变量代表命令行中所有的参数,$@将每个参数区别对待)
$?
$?功能描述(最后一次执行命令返回状态。如果这个变量值为0,证明执行成功,如果非0则执行脚本失败,具体由这个命令返回)
成功
失败
本章节记录到此结束~下一章节shell之运算符