本地变量:只对当前shell进程有效,对其子shell以及其他shell都无效
局部变量:只对某一部分有效
定义变量:local Var_Name="Value"
环境变量:对其shell进程及其子shell有效:
export Var_Name=”Value“
shell脚本中的变量
$0:脚本名称自身
$n :n为数字,$0代表命令本身,$1-$9 代表第一个到第九个参数,十以上的参数需要用大括号包含,如 ${10} 、${11}
$* :这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体(如果循环 $* 输出参数,将只输出一次)
$@ :这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待(如果循环 $@ 输出参数,将单独输出每个参数)
$# :这个变量代表命令行中所有参数的个数
交互式登录和非交互式登录
交互式登录:直接通过终端输入用户和密码登陆系统
非交互式登录:登录后输入bash,zsh等。
ps:su - UserName属于交互式登录,su UseName属于非交互式登录
交互式登录配置文件加载顺序
/etc/profile -->/etc/profile.d/*.sh -->/.bash_profile-->/.bashrc -->/etc/bashrc
非交互式登录配置文件加载顺序
~/.bashrc -->/etc/bashrc -->/etc/profile.d/*.sh
bash的配置文件
- profile类: 为交互式登录的用户提供配置
功能:
1. 设定环境变量
2. 用来实现运行命令或者脚本
# /etc/profile 全局
# /etc/profile.d/*.sh 全局
# ~/.bash_profile 个人配置,仅对当前用户有效
- bashrc类:非交互式用户登录提供配置
功能:
1.设定本地变量
2.设定命令别名
# /etc/bashrc:全局
# ~/.bashrc:个人配置