命令行参数和环境变量

命令行参数

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

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

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

bash 复制代码
./mytest -a --b --help --version

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

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

打印结果及分析如下:

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

环境变量

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

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

bash 复制代码
env

查看某个环境变量的值

bash 复制代码
echo $NAME

设置环境变量

bash 复制代码
export NAME=环境变量的值

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

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

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

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

取消环境变量

bash 复制代码
unset NAME

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

bash 复制代码
set

本地变量 vs 环境变量

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

常见环境变量

PATH

指定命令的搜索路径

HOME

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

SHELL

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

获取环境变量

1、getenv ------函数获取

cpp 复制代码
std::cout << "PATH" << std::endl;

2、main 函数传参

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

3、指针指向环境变量表

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

cpp 复制代码
extern char** environ
相关推荐
野生码农AI实战14 分钟前
奇耻大辱,我的网站被挂马,服务器已沦陷三个月
服务器
ShineWinsu22 分钟前
对于C++:缓冲区管理的详细解析
linux·c++·面试·编程·笔试·io·缓冲区
jason.zeng@150220723 分钟前
服务器磁盘读写效率,网络吞吐量查看,mysql性能调优
服务器·网络·mysql
张小姐的猫26 分钟前
【Linux】网络编程 —— 传输层协议 TCP(下)
linux·运维·服务器·网络·tcp/ip·http·php
程序员AlbertTu1 小时前
第2章 上手 Linux:环境与文件操作
linux·运维·服务器
☆凡尘清心☆1 小时前
CentOS Stream 9 源码编译搭建 Zabbix7.0.29 完整部署方案(部署成功)
linux·运维·centos
Escalating_xu2 小时前
【Linux】进程间通信:从匿名管道、FIFO 到共享内存、消息队列与信号量
java·linux·面试
予昊2 小时前
Linux 资源控制实战分析:用 LXC 亲手造一个 “迷你虚拟机“
linux·运维·服务器
allforgood2 小时前
管理网络安全
linux
不悔哥2 小时前
Tinyftp 源码学习笔记:3000 行 C 实现的 FTP 服务器
服务器·c语言·网络·tcp/ip