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

Linux环境变量与本地变量

文章目录

  • Linux环境变量与本地变量
    • 什么是环境变量
    • 查看环境变量
    • 设置环境变量
    • 本地变量
      • 命令行参数

Linux环境变量与本地变量

什么是环境变量

操作系统或运行时环境中存储的一些变量,用来存储与进程或系统相关的配置信息。这些变量在进程启动时由操作系统或Shell读取,并对进程的行为和资源访问产生影响。

查看环境变量

env  //可以查看所有的环境变量,环境变量具有全局属性,也就是你这个程序中的所有子进程的环境变量都是继承父进程的
echo $具体变量名称    //查看具体的某个环境变量
系统调用接口
char* getenv(const char* name);

设置环境变量

export MY_Value = 1111 //设置MY_value为环境变量,并且值为111
unset MY_value  //取消环境变量

本地变量

直接在shell中定义的变量就是本地变量

例如:直接在bash中写入以下的内容,A 和 B就是本地变量。

A = 1
B = 2c

**问题1:**可知bash是一个进程,我们在bash中所输入的指令都通过bash去创建子进程去执行,当我们用echo去输出本地变量的值的时候,为什么可以输出出来,按理来说本地变量不是不能继承给子进程吗?

答1:命令行上创建的进程不都是通过创建子进程去运行的。这里分为两种,一部分命令是去创建子进程中创建,另一部分的指令是通过bash自己去完成,类似于bash调用了自己的,或者系统写的函数,也被叫做内建命令。如cdechopwd

注意:不管是环境变量还是本地变量,都只是在当前bash中生效,一旦bash销毁,这些变量也会销毁。

问题2: 为什么说环境变量有全局属性,子进程是如何继承的?

答2: 这里涉及到命令行参数传参,main函数的第三个参数int main(char argc,char* argv[],char* env[])

env里面是我们所有的环境变量。

命令行参数

int main(char argc,char* argv[],char* )
{return 0;
}

argv是一个指针数组,里面的元素保存的是命令的输入内容,以空格为分隔。argc是argv中的元素个数。

int main(char argc,char* argv[])
{int i = 0;for(;argv[i],i++){printf("%s\n,"argv[i]);}return 0;
}

假设这个程序名字为mytest

我们在命令行输入 ./mytest a b c d

这个程序将会打印如下的内容:

./mytest
a
c
d

这也就是我们所输入的内容,这就是命令行参数,注意argv[]数组最有一个指针指向的位置为NULL,也就是0

http://www.lryc.cn/news/493520.html

相关文章:

  • ChatGPT的应用场景:开启无限可能的大门
  • QT按下两次按钮,保存这期间内变换的QtextEdit控件内的数据
  • daos源码编译
  • HTML飞舞的爱心
  • C++中智能指针的使用及其原理 -- RAII,内存泄漏,shared_ptr,unique_ptr,weak_ptr
  • Linux服务器安装mongodb
  • Android11修改摄像头前后置方法,触觉智能RK3568开发板演示
  • leetcode 212. 单词搜索 II
  • Taro 鸿蒙技术内幕系列(三) - 多语言场景下的通用事件系统设计
  • 《Docker Registry(镜像仓库)详解》
  • AI前景分析展望——GPTo1 SoraAI
  • 超级详细讲解转义字符,\? \‘ \f \0 \t等等!!!
  • 微信小程序数据请求教程:GET与POST请求详解
  • Linux系统管理基础指南--习题
  • JVM(JAVA虚拟机)内存溢出导致内存不足,Java运行时环境无法继续
  • IOC控制反转详解
  • Qml-TabBar类使用
  • C# 常量
  • diffusion model: prompt-to-prompt 深度剖析
  • uniapp实现APP版本升级
  • uniapp强制修改radio-group内单选组件的状态方法
  • 学习python的第十四天之函数——高阶函数和偏函数
  • 数据结构之二叉树详解:从原理到实现
  • iOS 系统中使用 webView 打印 html 的打印边距问题
  • 如何在ubuntu上调试core dump
  • 基于 JNI + Rust 实现一种高性能 Excel 导出方案(上篇)
  • 【Maven】依赖管理
  • springboot/ssm高校超市管理系统Java商品出入库供应商管理系统web源码wms
  • 小程序-基于java+SpringBoot+Vue的微信小程序养老院系统设计与实现
  • 宠物电商对接美团闪购:实现快速配送与用户增值