【Linux】Linux 操作系统 - 13 , 深入解析命令行参数与环境变量 !


前言

本节将会对环境变量部分进行详细介绍 !


一、命令行参数

1 . 是什么 ?


  先回答一个问题 ? main 函数有没有参数 ?

    答 : 有的 !

  看一个代码 :

// 1 . main 函数有参数吗 ?  答 :  有 

#include <stdio.h>

int main(int argc , char* argv[]) // 这个就是 main 函数的两个基本参数
{
	printf("Hello Linux !\n");
	return 0;
}

在这里插入图片描述


2 . 我们使用的命令选项来源


  我们在命令行敲下的命令 , 本质就是一个字符串 , bash 会将字符串划分 .
  然后传给命令行参数 , 这样就会执行相应的程序 !

在这里插入图片描述

#include <stdio.h>
#include <string.h>


int main(int argc , char* argv[]) // 这个就是 main 函数的两个基本参数
{

	// 两个参数 , 假如命令行敲下 :  ./envir -a  这就是两个参数
	
    if(argc != 2)
    {
        printf("Usage: %s [-a|-b|-c]\n", argv[0]);
        return 1;
    }

    const char *arg = argv[1];

    if(strcmp(arg, "-a")==0)
        printf("这是功能1\n");
    else if(strcmp(arg, "-b")==0)
        printf("这是功能2\n");
    else if(strcmp(arg, "-c")==0)
        printf("这是功能3\n");
    else
        printf("Usage: %s [-a|-b|-c]\n", argv[0]);	

	return 0;
}

在这里插入图片描述


3 . 为什么 main 有命令行参数 ?

在这里插入图片描述


二、环境变量

1 . 常见环境变量

在这里插入图片描述


2 . 命令查看环境变量

在这里插入图片描述


3 . 为什么我们写的程序需要 ./ 才能运行可执行程序呢 ?

在这里插入图片描述


4 . 相关基本命令

在这里插入图片描述


5 . 通过代码方式查看环境变量(推荐系统调用)

1. 通过命令行参数的第三个参数

补充 , main 函数最多几个参数 ?

答 : 最多三个 , 分别为 : int argc , char* argv[] , char* environ[]

// 代码方式获取环境变量 , 第三个参数

#include <stdio.h>

// main 函数中第三个参数 , environ[]
int main(int argc , char* argv[] , char* environ[])
{
	
	for(int i = 0; environ[i]; i++)
     	{
        	  printf("environ[%d]-> %s\n", i, environ[i]);
        }	


	return 0;
}


在这里插入图片描述


2. 系统调用获取环境变量(推荐 , 掌握)

在这里插入图片描述

/////////////  通过系统调用 getenv 

#include <stdio.h>
#include <stdlib.h>

int main()
{	
	const char* str = getenv("PATH");
	printf("%s\n",str);	
	
	return 0;
}


在这里插入图片描述


3. 通过全部变量 environ(了解)

#include <stdio.h>
int main(int argc, char *argv[])
{
	extern char **environ;
	int i = 0;
	for(; environ[i]; i++){
		printf("%s\n", environ[i]);
	} 
	return 0;
}



三、bash 中的两张表

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

总结

在这里插入图片描述