常用系统变量:$HOME、$PWD、$SHELL、$USER 等
查看当前用户主目录:
[root@hadoop100 ~]# echo $HOME
[root@hadoop100 ~]# printenv HOME
显示当前Shell中所有的变量:
[root@hadoop100 ~]# set
查看当前所有全局环境变量:
[root@hadoop100 ~]# env
[root@hadoop100 ~]# printenv
定义变量:变量名=变量值,注意(=号前后不能有空格)`建议大写。都是字符串类型,无法直接进行数值运算。


静态不能 unset 和修改


#!/bin/bash
echo “hello world!”
echo $B

注意: 这时,我们执行 hello.sh 时,只输出了 hello world!,并未输出变量 B 的内容。原因是:变量B刚定义时是一个局部变量,而我们使用方式2(参考扩展篇第一章)执行 hello.sh。相当于当前 shell 中打开一个子 shell 来执行脚本内容,所以局部变量在子 shell 中无效。我们需要将其变成全局变量才可使用
全局环境变量,供其他 Shell 程序使用
基本语法:$n
| n值 | 功能描述 |
|---|---|
| $0 | 代表该脚本名称 |
| $1-$9 | 代表第一到第九个参数,十以 上的参数 |
| ${10} | 十以上的参数需要用大括号包含 |
案例实操
修改 hello.sh内容,如下所示:
#!/bin/bash
echo ‘==$n’
echo “hello world!”
echo scpipt name: $0
echo 1st paramater: $1
echo 2nd paramater: $2

基本语法:$#
所有输入参数个数,常用于循环,判断参数的个数是否正确以及加强脚本的健壮性。案例实操
在 hello.sh脚本中添加下面内容:
echo paramater number:$#

基本语法
案例实操
在 hello.sh脚本中添加下面内容:
echo $*
echo $@

两者的区别
#!/bin/bash
echo '=============$*============'
for para in "$*"
do
echo $para
done
echo '=============$*============'
for para in "$@"
do
echo $para
done
~

基本语法:$?
最后一次执行的命令的返回状态。
案例实操
