前言

    Windows中有环境变量,比如我们熟悉的path……那么linux有没?

 

正文

    操作系统 真没有大家想的那么智能,反而是很笨的

譬如我们输入 :ls立马执行

 

那操作系统是怎么执行的?它怎么知道ls要怎么执行?去哪执行?要执行的程序在哪?

环境变量:简单的说,就是告诉系统,根据命令去哪里(文件夹)找可执行程序。

 

查看环境变量

echo $PATH (PATH一定要大写)

 

一、本地变量(临时)

可以认为是会话变量(进程级)

1.赋值

myname=fatsnake

ps:字符串连接夹双引号

myname=fat

myname=$myname"snake"

打印

echo $ fatsnake

删除

unset fatsnake

 

二、系统环境变量--PATH

系统超级依赖的一个变量。当你执行一个命令时会自动到这个变量里面的文件夹去寻找"可执行的程序"

 

 

三、使用c语言设置和获取环境变量

#include <stdio.h>

#include <stdlib.h>

int main(int argc,char *argv[]){

 

    // set value

    //putenv("myname=fatsnake123");

    // get value

    char *getResult=getenv("myname");

    printf("myname is %s\n",getResult);

 

    printf("PATH is %s\n",getenv("PATH"));

    int i;

    if(argc == 2){

        //printf("%s\n",argv[1]);

        if(strcmp(argv[1],"-version") == 0){

            printf("version god 1.1\n");

        }

        else{

            printf("%s\n",argv[1]);

        }

    }

    

    return 0;

}

 

四、实验

在命令行中设置的临时变量,使用c语言获取不到!

Ps:说明是临时变量是进程级的,命令行与c语言程序是两个进程。

系统的这种机制,保证了进程安全,就是设置的临时变量不会被其他程序所修改。

 

尾声

posted on 2016-08-10 06:28  fatsnake  阅读(190)  评论(0编辑  收藏  举报