set, setenv, export的区别

  • Post author:
  • Post category:其他




set, setenv, export的区别

写在前头,首先要认识

何为环境变量


环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数,

如:临时文件夹位置和系统文件夹位置等

。(摘自百度百科)


简单来说,环境变量是系统的变量,当要用到某个程序的时候,告诉系统根据环境变量中设置的路径(path)去哪个地方找这个程序


1.说明


使用

set



setenv

命令可以设置shell选项或者列出shell变量,其中

setenv



csh

的命令,在

bash

中用

export

命令。


2.语法格式




set


set 变量名 = 内容

set 变量名 =(内容1 内容2 )

set 变量名 =”内容1 内容2″



setenv


setenv 变量名 内容

setenv 变量名 “内容1 内容2”

setenv 变量名 ‘内容1 内容2’



export


设置内部变量


export 变量名


设置环境变量


export PATH = ${路径}/def:$PATH



:

的意思是并列


在bash里写的

export

要通过

source

命令来执行,单独

./

不可行



除了export可直接在终端上使用,其余都不行。这几个设置都可以通过

unset

清除


3.查看


①查看单个环境变量


echo $变量名


②查看全部环境变量


env


③查看内部变量


set


4.环境变量、全局变量和局部变量



环境变量

:除了在shell中使用还可以在子进程中使用,但不同的shell之间不能通用。


全局变量

:可以在shell中使用。


局部变量

:只能在函数内部使用。


全局变量



局部变量

都可以理解为

内部变量



不同于环境变量,内部变量只能在shell内实现,可通过export 输出为环境变量



环境变量

可以被子进程(如 bash 进入子shell)继承而

内部变量

不可以继承,改变

环境变量

就会自动改变

内部变量

,反之不然。

set

列出

内部变量

列表,

env

列出

环境变量

列表。

有关变量的详细讲解可以看看这篇笔记

Shell变量的作用域:Shell全局变量、环境变量和局部变量



版权声明:本文为Heyyellman原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。