Shell脚本3

news/2025/1/18 6:23:33/

环境变量

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.ppmy.cn/news/60072.html

相关文章

全栈成长-python各数据类型之间的转换

python数据类型的转换 字符串与数字之间的转换 原始类型目标类型函数举例整型字符串strstr(123)>“123”浮点型字符串strstr(3.14)>“3.14”字符串整型intint(“123”)>123 int(3.14)>报错字符串浮点型floatfloat(“3.14”)>3.14 float(“314”)>314.0 其他…

与chatGPT谈TyptScript接口问题

与chatGPT谈TyptScript接口问题 问1:能给我说说c#中的inteface 与typescript 中的inteface的不同与相同吗? 答1: C# 中的 Interface 和 TypeScript 中的 Interface 有一些相似之处,但也有一些不同之处。 相同点: …

SpringBoot+Shiro+Jwt+Vue+elementUI实现前后端分离单体系统Demo

记录一下使用SpringBoot集成Shiro框架和Jwt框架实现前后端分离Web项目的过程,后端使用SpringBoot整合ShiroJwt(auth0),前端使用vueelementUI框架,前后端的交互使用的是jwt的token,shiro的会话关闭,后端只需要使用Shiro…

C语言入门篇——文件操作篇

目录 1、为什么使用文件 2、什么是文件 2.1程序文件 2.2数据文件 2.3文件名 3、文件的打开和关闭 3.1文件指针 3.2文件的打开和关闭 4、文件的顺序读写 5、文件的随机读写 5.1fseek 5.2ftell 5.3rewind 6、文本文件和二进制文件 7、文件读取结束的判定 8、文件…

一篇带你快速入门DDD领域驱动设计

一、什么是领域驱动 领域驱动设计 Domain-Driven Design,简称DDD。软件对于行业并没有这么高的要求,他本身就是帮助其他行业更好的发展,赋能其他行业的。各个行业都有软件的身影,但是他们的业务场景是不同的,所以就需…

工作记录——2023年5月找工作有感

工作记录——2023年5月找工作有感 于2023年4月底开始找工作。 背景: 自2023年1月入职某尔公司,4月底直线领导通知所在的智家平台也就是如今的家电市场业绩不好,市场不好,集团要裁员,每个部门有20%的裁员比例。 相比…

atbf中imu数据读取逻辑分析仪抓取

一、说明 使用逻辑分析仪抓区imu的spi和中断io的信号,从而侧面描述atbf在imu上的数据读取方式; 二、硬件说明 1、硬件材料 1、mcu at32F437开发板 2、imu icm42688p 3、逻辑分析仪 梦源逻辑分析仪 4、调试器 jlink 2、原理图 3、实物图 4、固…

SDN — VxLAN Overlay 数据面

目录 文章目录 目录VxLANVxLAN 组网拓扑NVE/VTEPVxLAN L3 Gateway集中式 VxLAN L3 Gateway 组网方案分布式 VxLAN L3 Gateway 组网方案VxLAN 协议栈VxLAN 数据面转发原理同 VNI 的 BUM 报文转发场景同 VNI 的单播报文转发场景ARP Request 广播转发流程ARP Reply 单播转发流程不…