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

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.kler.cn/a/415561.html

相关文章:

  • 【vue-router】Vue-router如何实现路由懒加载
  • 110页PPT战略指南:剖析Cross SWOT分析、市场洞察与内部优化方案
  • Rook入门:打造云原生Ceph存储的全面学习路径(下)
  • 华为E9000刀箱(HWE9000V2)服务器硬件监控指标解读
  • EC2还原快照
  • 什么是串联谐振
  • 随笔20241126 Kafka 消费者的自动提交与手动提交偏移量详解
  • 【金猿案例展】无锡征信——百望云绿色金融数据要素+数据资产入表服务方案...
  • React进阶面试题目(二)
  • 基于时间维度优化“开源 AI 智能名片 S2B2C 商城小程序”运营策略:提升触达与转化效能
  • 数据分析流程中的Lambda架构,以及数据湖基于Hadoop、Spark的实现
  • 实例讲解MATLAB绘图坐标轴标签旋转
  • 网络安全运行与维护高级 - 题库汇总百题
  • Linux中创建SFTP用户并设置默认文件权限为775的三种方法
  • 虚拟机ubuntu-20.04.6-live-server搭建OpenStack:Victoria(一:工具、环境准备-controller node)
  • MaskRCNN训练自己的数据集
  • OpenCV 图像轮廓查找与绘制全攻略:从函数使用到实战应用详解
  • 前端开发:构建高质量用户体验的全方位指南(含实际案例与示例)
  • 社群赋能电商:小程序 AI 智能名片与 S2B2C 商城系统的整合与突破
  • 实例分析基于RFCOMM协议大数据传输以及流控
  • 快速排序及其优化【图文详解】
  • falsk-模型基础
  • Android 12.0 DocumentsUI文件管理器首次进入默认显示内部存储文件功能实现
  • 篡改代码事件升级,字节索赔800万
  • Android 图形系统之四:Choreographer
  • 【verilog教程】verilog函数