环境变量setenv函数和export命令的解释

一、环境变量

1.概念

指在操作系统中用来指定操作系统运行环境的一些参数。环境变量通常具有特殊用途,在系统中具有全局特性。
环境变量通常具有全局属性,可以被子进程继承下去。

2.常见的环境变量

(1)PATH:指定命令的搜索路径
(2)HOME:指定用户的主工作目录(即用户登录到Linux系统中时,默认的目录)
(3)HISTSIZE:指保存历史命令记录的条数
(4)SHELL:当前Shell,它的值通常是/bin/bash

3.查看环境变量的方法

echo $NAME //NAME:环境变量名称

4.和环境变量相关的命令

(1)echo:显示某个环境变量值
(2)export:设置一个新的环境变量
(3)env:显示所有环境变量
(4)unset:清楚环境变量
(5)set:显示本地定义的shell变量和环境变量

二、setenv

作为setenv函数

作用:增加或者修改环境变量。
注意:通过此函数并不能添加或修改 shell 进程的环境变量,或者说通过setenv函数设置的环境变量只在本进程,而且是本次执行中有效。如果在某一次运行程序时执行了setenv函数,进程终止后再次运行该程序,上次的设置是无效的,上次设置的环境变量是不能读到的。
头文件:#include<stdlib.h>
注:stdlib.h在Linux和Windows中略不同,比如setenv函数是用在linux中的,在Windows中没有setenv函数而用putenv来代替
函数声明:int setenv(const char *name,const char * value,int overwrite);
函数说明:setenv()用来改变或增加环境变量的内容。参数name为环境变量名称字符串。参数 value则为变量内容,参数overwrite用来决定是否要改变已存在的环境变量。如果没有此环境变量则无论overwrite为何值均添加此环境变量。若环境变量存在,当overwrite不为0时,原内容会被改为参数value所指的变量内容;当overwrite为0时,则参数value会被忽略。返回值 执行成功则返回0,有错误发生时返回-1。
相关函数:getenv,putenv,unsetenv

作为Linux中setenv命令

Linux中的功能:查询或显示环境变量
语法:setenv [变量名称] [变量值]

setenv用于在C shell设置环境变量的值
用法:setenv ENVVAR value
ENVVAR 为所要设置的环境变量的名。value为所要设置的环境变量的值
例:setenv PATH "/bin:/usr/bin:usr/sbin:"设置环境path的搜索路径为/bin,/usr/bin以及/usr/sbin

三、export

Linux中的功能:设置或显示环境变量(比如我们要用一个命令,但这个命令的执行文件不在当前目录,这样我们每次用的时候必须制定执行文件的目录,麻烦,在代码中先执行export,这个相当于告诉程序,执行某某东西时,需要的文件或什么东西在这些目录里)
说明:在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该次登陆操作。
语法:export [-fnp] [变量名称] = [变量设置值]
参数说明

  • -f  代表[变量名称]中为函数名称。
  • -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。
  • -p  列出所有的shell赋予程序的环境变量。

延伸:export设置环境变量是暂时的,只在本次登录中有效,可修改如下文件来使命令长久有效。
注意
1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;
2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量);
3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。
4、不用export定义的变量只对该shell有效,对子shell也是无效的。

一个变量创建时,它不会自动的为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值。当一个shell脚本调用并执行时,它不会自动得到原来脚本(调用者)里定义的变量的访问权,除非这些变量已经被显示地设置为可用。export命令可以用于传递一个或多个变量的值到任何后续脚本。

export设置环境变量是暂时的,只在本次登录中有效,若想要使得开机时自动加载这个环境变量免除以后每次设置,可将其写入/etc/re.local

  • 10
    点赞
  • 112
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值