1 变量分类
本地变量:只有本地用户可以使用,保存在家目录下的.bash_profile、.bashrc文件中
全局变量:所有用户都可以使用,保存在/etc/profile、/etc/bashrc文件中
1.1 变量生效顺序
- /etc/profile 开机所有用户加载此文件
- ~/.bashrc
- ~/.bash_profile
- /etc/bashrc
2 定义变量
变量格式: 变量名=值
变量名和等号之间不能有空格。
变量名命名规则:
命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
中间不能有空格,可以使用下划线_。
不能使用标点符号。
不能使用bash里的关键字(可以使用help命令查看保留关键字)。
3 取消变量
unset 变量
4 定义全局变量
export 变量=值
5 定义永久变量
将变量写在配置文件中
本地变量:只有本地用户可以使用,保存在家目录下的.bash_profile、.bashrc文件中
全局变量:所有用户都可以使用,保存在/etc/profile、/etc/bashrc文件中
6 显示变量
echo $变量名
env 查看全部变量
set 查看全部变量
7 shell特殊位置变量
运行脚本时输入:/bin/sh xxx.sh arg1 arg2...
则在脚本中
$0 代表脚本名称xxx.sh,如果全路径执行,则脚本名称带全路径
$1 代表arg1
$2 代表arg2
${10} 代表arg10,第10个参数开始要加{ }代表一个整体
$# 代表参数的总个数
$* 获取脚本的所有参数,不加""和$@相同,加上""则把所有参数视为一个参数
$@ 获取脚本的所有参数,不加""和$*相同,加上""则把不同参数视为独立的参数
$? 获取上一条命令的返回结果,0成功,非0失败
$$ 获取脚本的PID
$! 获取上一个在后台运行脚本的PID,一般调试使用
$_ 获取命令行最后一个参数
7.1 basename 单独获取脚本名称
basename /路径/脚本
[root@web01 ~]$ basename /server/scripts/backup_client.sh
backup_client.sh
7.2 控制脚本传参的个数
必须传入2个参数
[ $# -ne 2 ] && echo"请输入2个参数" && exit








网友评论