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

命令行参数和环境变量

命令行参数

命令行参数是在用户在命令行中输入命令时,跟随命令一起输入的一些附加信息。这些参数可以用来配置命令的行为或传递一些数据给命令。

让同样的程序在不同的命令行参数下运行出不同的结果!

将这些命令和参数可以传给 main 函数生,例如下面的命令:

./mytest -a --b --help --version

写一个程序,在 main 函数中打印出这些参数

argc 为参数个数,argv 为命令参数列表。 

打印结果及分析如下:

命令行参数,可以支持各种指令级别的命令行选项的设置。这样,我们就可以理解了,曾经学习的指令和选项之间的关系。

环境变量

环境变量 ( environment variables ) 一般是指在操作系统中用来指定操作系统运行环境的一些参数。系统中会存在大量的环境变量,每一种环境变量都有它自己的特殊用途,用来完成特定的系统功能。

查询系统所支持的环境变量

env

查看某个环境变量的值 

echo $NAME

设置环境变量

export NAME=环境变量的值

 一般默认更改的都是 bash 进程内部的环境变量信息!每一次重新登录,都会给我们形成新的 bash 解释器并且新的 bash 解释器自动读取自己的环境变量表信息!

安装和卸载程序本质上就是简单的拷贝!

每一次登录时,你的 bash 进程都会读取 .bash_profile 配置文件中的内容,为我们 bash 进程形成一张环境变量表信息!

如果将自己更改的环境变量写入配置文件,就可以在每次登录时自动导入这些环境变量。一旦写入配置文件,就具有全局属性!

取消环境变量

unset NAME

显示所有的本地变量和环境变量(本地变量:直接在命令行定义的变量)

set

本地变量 vs 环境变量

本地变量只在 bash 进程内部有效,不会被子进程继承下去;环境变量通过让所有的子进程继承的方式,实现自身的全局性。 

常见环境变量 

PATH

指定命令的搜索路径

HOME

指定用户的主工作目录(即用户登陆到Linux系统中时,默认的目录)

SHELL

当前Shell,它的值通常是/bin/bash。

获取环境变量

1、getenv ——函数获取

std::cout << "PATH" << std::endl;

2、main 函数传参

main 函数可以传两张表:,命令行参数表和环境变量表

3、指针指向环境变量表

C/C++ 中有一个全局指针变量( environ ),指向环境变量表,只需要声明一下即可!(让子进程能找到即可,因为子进程会继承父进程的资源,并在需要修改时写时拷贝)

extern char** environ

相关文章:

  • C++ STL->list模拟实现
  • 【C++】实现Date类的各种运算符重载
  • 【机器学习笔记】 9 集成学习
  • 第73左侧菜单实现
  • 【NI-DAQmx入门】调整数据记录长度再进行数据处理
  • 第二节 zookeeper基础应用与实战
  • 多维时序 | Matlab实现TCN-RVM时间卷积神经网络结合相关向量机多变量时间序列预测
  • C 语言 devc++ 使用 winsock 实现 windows UDP 局域网发送消息
  • 设计模式之结构型模式
  • 通过 Prometheus 编写 TiDB 巡检脚本(脚本已开源,内附链接)
  • TCP/IP C 语言实现单个客户端和服务端 TCP 通信
  • 【FPGA开发】HDMI通信协议解析及FPGA实现
  • HiveSQL——共同使用ip的用户检测问题【自关联问题】
  • CVE-2022-25487 漏洞复现
  • 排序算法---计数排序
  • 安全基础~通用漏洞5
  • 【Spring2】从重构HelloWorld看Spring的作用
  • 面试经典150题——最小覆盖子串(困难)
  • 微信小程序(四十一)wechat-http的使用
  • Java解决下降路径最小和
  • 网商银行2024年年报发布,客户资产管理规模超过1万亿
  • “铁血防守”制造8年最快丢球,恐惧中的阿森纳什么也做不了
  • 体坛联播|欧冠半决赛阿森纳主场不敌巴黎,北京男篮险胜山西
  • 三大白电巨头去年净利近900亿元:美的持续领跑,格力营收下滑
  • A股三大股指小幅低收:电力股大幅调整,两市成交10221亿元
  • 阿里开源首个“混合推理模型”:集成“快思考”、“慢思考”能力