常用的系统变量
序号 | 命令 | |
---|---|---|
1 | $HOME | 查看当前用户的根目录 |
2 | $PWD | 查看当前路径,等价于pwd |
3 | $SHELL | 查看系统shell的解释器类型 |
4 | $USER | 当前登录用户 |
… |
env:显示用户的环境变量
变量名称=值
注意:
普通使用
[root@hadoop-node01 ~]# address=深圳
[root@hadoop-node01 ~]# echo $address
深圳
单引号使用
[root@hadoop-node01 ~]# username1='波波烤鸭'
[root@hadoop-node01 ~]# echo $username1
波波烤鸭
# 单引号有脱意的作用
[root@hadoop-node01 ~]# username2='波波烤鸭$address'
[root@hadoop-node01 ~]# echo $username2
波波烤鸭$address
双引号的使用
[root@hadoop-node01 ~]# username2="波波烤鸭$address"
[root@hadoop-node01 ~]# echo $username2
波波烤鸭深圳
双引号中对变量的引用会起作用。
变量的累加 ":"通过冒号累加
取消变量 unset
[root@hadoop-node01 ~]# echo $username2
波波烤鸭深圳
[root@hadoop-node01 ~]# unset username2
[root@hadoop-node01 ~]# echo $username2
提示全局变量export export 可以将局部变量提升为全局变量 创建一个s1.sh脚本文件,内容如下:
#!/bin/bash
stu1=bobo1
export stu2=bobo2
执行脚本并查看变量
[root@hadoop-node01 ~]# source s1.sh
反引号的使用 反引号,运行里面的命令,并把结果返回给变量P1
[root@hadoop-node01 ~]# ls
apps s1.sh shellScript zookeeper.out
[root@hadoop-node01 ~]# P1=`ls`
[root@hadoop-node01 ~]# echo $P1
apps s1.sh shellScript zookeeper.out
$() 等价于反引号
[root@hadoop-node01 ~]# P2=$(ls)
[root@hadoop-node01 ~]# echo $P2
apps s1.sh shellScript zookeeper.out
特殊变量 | 说明 |
---|---|
$? | 表示上一个命令的退出状态,0成功,大于1表示失败 |
$$ | 表示当前进程编号 |
$0 | 表示当前脚本名称 |
$n | 表示n位置的输入参数(n代表数字,n>=1) |
$# | 表示参数的个数,常用于循环 |
$*和$@ | 都表示参数列表 【在包含""的情况下 $*把循环数据当做一条参数处理了】 |
$?
$$ 当前进程编号
$0 当前脚本名称
[root@hadoop-node01 ~]# ./s1.sh
当前执行的脚本名称是:./s1.sh
$n 表示n位置的输入参数(n代表数字,n>=1)
[root@hadoop-node01 ~]# ./s1.sh a1 a2 a3 a4 a5
当前执行的脚本名称是:./s1.sh
第一个参数a1
第二个参数a2
第三个参数a3
$# 表示参数的个数,常用于循环
当前执行的脚本名称是:./s1.sh
第一个参数
第二个参数
第三个参数
参数总的个数:0
[root@hadoop-node01 ~]# ./s1.sh b1 b2 b3 b4 b5
当前执行的脚本名称是:./s1.sh
第一个参数b1
第二个参数b2
第三个参数b3
参数总的个数:5
$*和$@ 都表示参数列表 【在包含""的情况下 $*把循环数据当做一条参数处理了】 正常使用
双引号包裹$*和$@使用