Linux命令行解析与环境变量指南,uniapp 运行/发版微信小程序。
·
Linux 命令行参数解析
命令行参数是程序运行时通过终端传递的额外信息,通常用于控制程序行为。在 C 语言中,main 函数的参数 argc 和 argv 用于接收这些参数:
argc(argument count):表示参数的数量,包括程序名本身。argv(argument vector):是一个字符串数组,存储具体的参数值。
例如,运行命令 ./program -a -b 123 时,argv 的内容为:
argv[0] = "./program"
argv[1] = "-a"
argv[2] = "-b"
argv[3] = "123"
常见的命令行参数解析方式包括:
- 手动解析:通过循环遍历
argv进行匹配。 getopt库:标准库函数,支持短选项(如-h)和带参数的选项(如-f file.txt)。getopt_long:扩展版本,支持长选项(如--help)。
示例代码(使用 getopt):
#include <unistd.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
int opt;
while ((opt = getopt(argc, argv, "ab:")) != -1) {
switch (opt) {
case 'a': printf("Option a\n"); break;
case 'b': printf("Option b with value: %s\n", optarg); break;
default: fprintf(stderr, "Usage: %s [-a] [-b value]\n", argv[0]);
}
}
return 0;
}
环境变量的作用与管理
环境变量是系统或用户定义的全局变量,用于配置程序运行环境。常见环境变量包括 PATH、HOME 和 USER。
查看环境变量
- 使用
printenv查看所有环境变量:printenv - 查看特定变量(如
PATH):echo $PATH
设置环境变量
- 临时设置(仅在当前终端会话有效):
export VAR_NAME=value - 永久设置:
- 用户级:添加到
~/.bashrc或~/.bash_profile。 - 系统级:添加到
/etc/environment。
- 用户级:添加到
在程序中访问环境变量
C 语言通过 getenv 函数读取环境变量:
#include <stdlib.h>
#include <stdio.h>
int main() {
char *path = getenv("PATH");
if (path) printf("PATH: %s\n", path);
return 0;
}
命令行参数与环境变量的对比
| 特性 | 命令行参数 | 环境变量 |
|--------------------|-------------------------------|-----------------------------|
| 作用域 | 仅影响当前程序 | 影响所有子进程 |
| 传递方式 | 显式通过命令行传递 | 隐式继承或手动设置 |
| 典型用途 | 程序运行时配置选项 | 全局路径、语言设置等 |
通过合理使用两者,可以灵活控制程序的行为和运行环境。
更多推荐



所有评论(0)