Linux系统编程——环境变量、命令行参数
环境变量
在操作系统中,用来指定操作系统运行环境的一些参数:通常时系统提供的一组 name=value 形式的变量,Linux 中 不同用户有不同的环境变量。
环境变量 在系统中通常具有 全局特性。
常见环境变量:
PATH:指定命令的搜索路径
HOME:指定用户的主工作目录
SHELL:当前 shell 路径
命令行参数
以 main 函数传参为例:argc 表示 argv 字符串数组中有 argc 个元素,env 是传入的环境变量
在 linux bash 中使用系统指令时,其实我们输入的是 字符串,会被 bash 解析,以空格作为分割符,作为参数传给 main 函数,在系统环境变量提供的路径中 查找并调用 相应可执行文件
main 函数中的两张 核心 向量表:命令行参数表、环境向量表;均以NULL结尾
环境变量会被子进程继承:bash 自身在启动时 会从操作系统的 配置文件中读取环境变量信息,我们在 bash 中运行的子进程会从 继承 bash 的环境变量信息
进程启动时,调用 main 函数前需要传入 这两张核心向量表
本地变量
本地变量 只在 本 bash 内部有效,不会被继承;但是本地变量也可以导出到环境变量
内建命令
常规的命令需要通过 创建子进程来完成,如果创建子进程,在不主动传入环境变量进行覆盖的情况下,子进程会继承父进程的环境变量;
内建命令 —— bash 不创建子进程,亲自执行;类似于 bash 调用系统提供的函数