当前位置: 首页 > article >正文

Shell脚本3

环境变量

1、系统全局环境变量文件: /etc/profile

2、设置环境变量:export var_name=value  注意环境变量建议变量名全部大写

3、修改 /etc/profile文件后, 立刻加载修改的数据配置 source /etc/profile

shell环境分类

交互式:与用户进行交互、互动,效果就是用户输入一个命令 shell环境立刻反馈响应

非交互式:不需要用户参与就可以执行多个命令,如脚本文件含有多个命令,直接执行并给出结果

shell登录环境:需要用户名/密码登录的shell环境

shell非登录环境:不需要用户名/密码进入的shell环境 或执行脚本文件

        不同的工作环境加载的环境变量流程不一样

环境变量初始化流程

登录环境 会执行 /etc/profie 加载环境变量

非登录环境 会执行 /当前用户/.bashrc 加载环境变量

在/etc/profile 与 /当前用户/.bashrc 文件分别设置不同的环境变量,

然后创建shell脚本文件输出设置环境变量,

切换不同的环境执行shell脚本文件,观察初始化流程

命令

使用 -l 或 --login 先加载shell登录环境变量 在执行脚本文件

        bash -l 脚本文件       bash --login 脚本文件        

        sh -l 脚本文件            sh --login 脚本文件

bash        加载shell非登录环境变量

bash 脚本文件        sh 脚本文件

分析

1、vim 编辑/etc/profile文件,添加环境变量VAR1=VAR1

2、vim 编辑/当前用户/.bashrc文件,添加环境变量VAR2=VAR2

3、touch 创建demo1.sh脚本文件,并 vim 编辑文件输出 echo $VAR1、echo $VAR2两个变量

4、直接执行 sh demo1.sh脚本文件, 观察什么也没有输出

5、 bash命令 加载Shell非登录环境变量, 观察VAR2输出, VAR1没有输出

6、sh -l demo1.sh 加载Shell登录环境变了, 观察VAR1,VAR2都有输出

识别shell环境        $0识别环境语法

注意:$0在shell脚本文件中 输出脚本文件的名字

        echo $0

        输出 -bash        是shell登录环境

        输出bash        是shell非登录环境

bash        切换为shell非登录环境

logout         退出shell登录环境

exit        退出shell登录环境/非登登录环境

切换shell环境

1、直接登录 加载shell登录环境

2、su 切换用户 登录环境

       加载shell登录环境         su 用户名 --login        su 用户名 -l

       加载shell非登录环境        su 用户名

3、bash命令切换

        bash 加载shell非登录环境

        bash -l 脚本文件       bash --login 脚本文件        加载登录环境

        sh -l 脚本文件            sh --login 脚本文件

    


http://www.kler.cn/a/16860.html

相关文章:

  • 容器技术在DevOps中的应用
  • ubuntu-desktop-24.04上手指南(更新阿里源、安装ssh、安装chrome、设置固定IP、安装搜狗输入法)
  • 某app最新版 vmp算法分析一
  • qt QProcess详解
  • 更改Ubuntu22.04锁屏壁纸
  • 【JVM】关于JVM的内部原理你到底了解多少(八股文面经知识点)
  • 代码优美,搬砖不累:探索高质量代码之路
  • [架构之路-188]-《软考-系统分析师》-3-操作系统 - 图解页面替换算法LRU、LFU
  • 操作系统——第三章
  • 【FATE联邦学习】FATE是否支持batch分批训练?
  • 现代CMake高级教程 - 第 1 章:添加源文件
  • PowerJob基本概念
  • PHP学习笔记第一天
  • PHP+vue大学生心理健康评价和分析系统8w3ff
  • 每天一点C++——杂记
  • QT文本编辑与排版包含字体相关设置、段落对齐与排序方式
  • 树的刷题,嗝
  • 如果用上以下几种.NET EF Core性能调优,那么查询的性能会飙升
  • bash的进程与欢迎讯息自定义
  • C++命名空间的定义以及使用
  • C++煞笔笔记
  • 功能齐全的 DIY ESP32 智能手表设计之原理图讲解一
  • python实战应用讲解-【numpy数组篇】实用小技巧(九)(附python示例代码)
  • 这一篇LiveData掉不掉价(使用+粘性事件解决)
  • 07 Kubernetes 网络与服务管理
  • 项目沟通管理和干系人管理