linux基础之bash基础
一、bash变量
变量类型:
本地变量
set VAR_NAME=value
unset VAR_NAME
${VAR_NAME}
作用范围:当前shell进程;
局部变量
local VAR_NAME=value
unset VAR_NAME
${VAR_NAME}
作用范围:在当前shell进程的局部范围内有效;
环境变量
export VAR_NAME=value
unset VAR_NAME
${VAR_NAME}
使用范围:当前shell及其子shell;
位置变量:$1, $2, …
特殊变量:$$, $?, $#, $@, ...
二、bash配置文件
profile类:/etc/profile、/etc/profile.d/*.sh、~/.bash_profile。其中/etc/profile、/etc/profile.d/*.sh对所有用户有效。~/.bash_profile只对当前用户有效。
一般用于:声明环境变量
执行程序或脚本
bashrc类:/etc/bashrc、~/.bashrc。其中/etc/bashrc对所有用户都有效。~/.bashrc只对当前用户有效。
一般用于:
定义本地变量
定义命令别名
在修改完配置文件之后,并不会立即生效,要想生效,需要重新登录用户或者使用命令 source FILE 、. FILE来重新加载配置文件。
三、交互式登录与非交互式登录
交互式登录:
1、直接从终端登录
2、su – UserName 或者su –l UserName
非交互式登录:
1、su UserName
2、在图形界面下,打开的一个伪终端
3、执行脚本
对于交互式登录的用户来说,读取bash配置文件的顺序一般为:
/etc/profile —>/etc/profile.d/*.sh —>~/.bash_profile —>~/.bashrc —>/etc/bashrc
所以如果定义了冲突的变量,则以/etc/bashrc中的最终变量为准
对于非交互式登录的用户来说,读取bash配置文件的顺序一般为:
~/.bashrc –->/etc/bashrc –>/etc/profile.d/*.sh
所以我们在写脚本的时候要尽力避免依赖当前用户环境的情况。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。