大家好,欢迎来到IT知识分享网。
目录
环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数
常见环境变量
PATH :
指定命令的搜索路径HOME :
指定用户的主工作目录
(
即用户登陆到
Linux
系统中时
,
默认的目录
)SHELL :
当前
Shell,
它的值通常是
/bin/bash
。
查看环境变量的方法
echo $NAME
//NAME:
你的环境变量名称
了解环境变量
我们发现,像ls ll pwd这样的命令可以直接运行,但是像我们的myproc这样的程序却不能运行,那是因为像ls,ll,pwd这样的命令,所处的路径在环境变量中,但像myproc所处的路径不在环境变量中,所以导致了运行的时候在环境变量中找不到对应的路径,才没办法运行。
如何设置环境变量呢
1.将要执行的程序的路径导入 /usr/bin路径下,但是这种方法不推荐,因为会污染原有的命令。
2.通过export导入环境变量
我们可以看到,此时不用带./也可以执行了
当我们关闭当前会话后,会发现该路径又没有了,所以我们就不必担心会污染原有的命令了!
和环境变量相关的命令
1. echo:
显示某个环境变量值2. export:
设置一个新的环境变量3. env:
显示所有环境变量4. unset:
清除环境变量5. set:
显示本地定义的
shell
变量和环境变量
env:
环境变量得组织方式
通过代码如何获取环境变量
1.命令行第三个参数
#include <stdio.h>
int main(int argc, char *argv[], char *env[]){int i = 0;for(; env[i]; i++){printf(“%s\n”, env[i]);}return 0;}
2.通过第三方变量environ获取
libc中定义的全局变量environ指向环境变量表,environ没有包含在任何头文件中,所以在使用时 要用extern声明。
#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;}
通过系统调用或设置环境变量
1.getenv()
2.putenv()
环境变量通常是具有全局属性的
环境变量通常具有全局属性,可以被子进程继承下去。
直接查看,发现没有结果,说明该环境变量根本不存在
导出环境变量 export MYENV=”hello world”
#include <stdio.h> #include <stdlib.h> int main() { char * env = getenv("MYENV"); if(env){ printf("%s\n", env); } return 0; }
再次运行程序,发现结果有了!说明:环境变量是可以被子进程继承下去的!
如果只进行 MYENV=“helloworld” ,不调用export导出,那么运行程序会发现没有看到MYENV
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122498.html