一、变量简介
变量的理解:
1)变量是在程序运行过程中值可以变化的量
2)变量是用一串固定的字符来表示不固定的值的一种方法
变量的分类:
在shell中,变量分为环境级变量,用户级变量,系统级变量
环境级变量只在当前shell中生效,shell关闭则变量丢失
用户级变量写在用户的骨文件(~/bash_profile)中,只对当前用户生效
系统级变量被写在系统的配置文件/etc/profile或/etc/profile.d中,对于所有用户都生效
二、shell脚本中定义变量的方法
1、环境级
环境级变量设定方法:
export 变量=想赋予的值
eg: export a=1
[root@allen mnt]# a=1 ##给a赋值
[root@allen mnt]# echo "$a"
1
[root@allen mnt]# cat test.sh ##展示test.sh内容
#!/bin/bash
echo "$a"
[root@allen mnt]# sh test.sh ##运行脚本
##值为空
[root@allen mnt]# export a=1 ##使变量提升至环境变量
[root@allen mnt]# sh test.sh
1 ##值为1
[root@allen mnt]#
打开另外一个终端
可以看到值为空,足以证明环境级变量只在当前终端生效
2)用户级
用户级变量设定方法
vim ~/bash_profile ##在此文件中写要设定的变量
export b=5 ##示例编写内容
source ~/bash_profile ##重新加载文件
截图只是证明设定变量只能该用户使用
3)系统级
系统级变量设定方法
vim /etc/profile ##在文件最后写入要设定的变量
export b=100
source /etc/profile
截图只是证明设定变量能多用户使用
三、常用字符串变量的含义
$0 是脚本本身的名字
$1 脚本后的第一串字符串
$2 脚本后的第二串字符串
$3 脚本后的第三串字符串
$# 脚本后所跟字符串的个数
$* 脚本后跟的所有字符串,模式为“ 1 2 3 ”
$@ 脚本后跟的所有字符串,模式为“ 1”“2”“3
$$ 是当前终端的PID
看图可帮助理解
四、利用命令执行结果设定变量
$? 是命令在执行完成之后产生的退出值,范围是 [0-255]
当 $?=0 时标示命令执行没有错误输出
0表示成功(Zero - Success)
非0表示失败(Non-Zero - Failure)
2表示用法不当(Incorrect Usage)
127表示命令没有找到(Command Not Found)
126表示不是可执行的(Not an executable)
>=128 信号产生
exit也可以设定返回值