环境变量和普通变量
一、几个常用命令:
1. set : 输出所有变量,包含全局变量和局部变量
2. env : 只显示全局变量
3. declare : 输出所有的变量,函数,整数和已经导出的变量
4. unset : 消除本地变量和环境变量
5. source /etc/profile : 加载环境变量,使环境变量生效
二、普通变量定义赋值有三种方式:
1. 变量名=value : 不加引号,值里有变量会被解析后再输
2. 变量名='value' : 单引号,纯字符串显示
3. 变量名="value" : 双引号,引号里的变量及命令会解析后输出
三、变量名=$(命令)
把一个命令的结果作为变量的内容赋值,或者用反引号引起来(即tab键上面那个键输出的字符
如:CMD=$(date +%F) :将当前日期(格式化为2018-10-24)赋值给变量CMD
[root@hxjk_test_backend_services config]# CMD=$(date +%F) [root@hxjk_test_backend_services config]# echo $CMD 2018-10-25 [root@hxjk_test_backend_services config]#
四、$变量, ${变量}
输出变量值
五、shell中特殊位置参数变量
[root@hxjk_test_backend_services test]# cat aa.sh echo "shell file name: $0" echo "first param: $1" echo "params number:$#" echo "all param:$*" echo "all param2: $@" [root@hxjk_test_backend_services test]# sh aa.sh a b c shell file name: aa.sh first param: a params number:3 all param:a b c all param2: a b c [root@hxjk_test_backend_services test]#
六、shell进程中的特殊状态变量
1. $? : 获取执行上一个的执行状态返回值(0为成功,非0为不成功)
2. $$ : 获取当前执行的shell脚步的进程号
3. $! : 获取上一个再后台工作的进程的进程号
4. $_ : 获取在此之前执行的命令或脚步的最后一个参数
[root@hxjk_test_backend_services test]# ll total 8 -rw-r--r--. 1 root root 119 Oct 24 20:21 aa.sh -rw-r--r--. 1 root root 8 Oct 25 17:30 bb.sh -rw-r--r--. 1 root root 0 Oct 24 14:49 cc.sh [root@hxjk_test_backend_services test]# echo $? 0 [root@hxjk_test_backend_services test]# lll -bash: lll: command not found [root@hxjk_test_backend_services test]# echo $? 127 [root@hxjk_test_backend_services test]#