• shell脚本分为三类:登录脚本、交互式脚本、非交互式脚本


    shell脚本分为三类:登录脚本、交互式脚本、非交互式脚本

    一、

    登录脚本类似于windows下的计算机设置中的登录脚本和账户设置下的登录脚本的合集(我是这么理解的哈)。

    其配置文件的关键词为prefile,它有以下几个关键配置文件:

    /etc/prefile 这个是计算机脚本; [$home/.prefile ; $home/.bash_prefile ; $home/.bash_login]这三个是账户脚本,根据不同发行版名字不同(坑爹的linux) ;

    说明:/etc/prefile之所以这么牛逼,应该与其内部含有export有关,export定义的环境变量,将被定义为全局变量。

    读取顺序

    登入账号前/etc/profile >> /etc/profile.d/*                                        #/etc/profile 利用for循环调用 /etc/prefile.d/*

    登入账号时$home/.profile >> $home/.bashrc(如果有内容的话) 

    这个顺序我也不是太确定,书中没有明确说,不过应该不会错。

    二、

    交互式脚本,主要用于登录账号后,新的shell进程创建时调用,它不会再调用/etc/prefile。根据其特性:利用alisa 创建别名的时候,就可以将其写入到$home/.bashrc,因为你每次启动终端模拟包或者shell的时候,总会去调用它。

    其配置文件的关键词为bashrc,它有以下几个关键配置文件:

    $home/.bashrc ;/etc/bashrc

    $home/.bashrc 此脚本会调用/etc/bashrc,而/etc/bashrc又会调用/etc/profile.d/

    说明:/etc/bashrc隶属于/etc,不用说,肯定是任何账户都必须要读取的

    读取顺序$home/.bashrc >> /etc/bashrc  >> /etc/profile.d/*

    图示:

     

    三、

    非交互式脚本,主要用于系统执行shell脚本时调用。

    linux有一个全局环境变量BASH_ENV,此环境变量的作用就是为了让非交互式脚本实现其价值,但默认此变量没有设置。

    你可以用BASH_ENV=***来给它点活干干。当然要想长期使用,还得加到./bashrc。

  • 相关阅读:
    算法学习:二分法从入门到精通
    TypeScript筑基笔记一:Visual Studio Code 创建Typescript文件和实时监控
    LeetCode 92. 反转链表 II
    LeetCode 1525. 字符串的好分割数目
    字节跳动-people后台一面面经
    LeetCode 117. 填充每个节点的下一个右侧节点指针 II
    LeetCode 1529. 灯泡开关 IV
    LeetCode 165. 比较版本号
    LeetCode 312. 戳气球
    LeetCode 605. 种花问题
  • 原文地址:https://www.cnblogs.com/zengkefu/p/5492532.html
Copyright © 2020-2023  润新知