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

所以我们在写脚本的时候要尽力避免依赖当前用户环境的情况。

linux基础之bash基础,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。