自学内容网 自学内容网

export在linux中的作用

在某些项目中常常使用export命令。该命令的作用是设置环境变量,并且该环境变量为当前shell进程与其启动的子进程共享。

export MODEL_NAME="stable-diffusion-v1-4"

比如以上命令,如果不采用export,设置的变量仅在当前shell命令/进程中有效。子进程则无效

子进程
一个进程有唯一的进程标识符(PID),当一个进程创建一个进程时,被创建的进程称之为子进程

举例
如果使用 VAR=“Hello” 而不使用 export VAR=“Hello”,该变量会被设置为一个局部变量(也叫做 shell 变量),仅在当前 shell 会话中可见。后续在同一个 shell 会话中执行的命令和脚本都可以访问这个变量,但如果启动一个新的子进程(例如运行另一个脚本或程序),这个子进程将无法访问该变量。
例如,以下命令在同一个 shell 会话中执行:

VAR="Hello"
echo $VAR

输出将是 Hello,因为 VAR 在同一个会话中是可见的。
但是,如果在设置了 VAR 变量后,运行另一个脚本或程序:

VAR="Hello"
./some_script.sh

在 some_script.sh 中无法访问 VAR,因为 VAR 是局部变量。要让子进程也能访问 VAR,必须使用 export 命令:

export VAR="Hello"
./some_script.sh

这样,VAR 就会成为一个环境变量,并且 some_script.sh 脚本及其他子进程都可以访问它。总结来说,不使用 export,局部变量只在当前 shell 会话中有效,不会继承到子进程中;使用 export,变量会成为环境变量,可以被子进程继承。

取消export
如果取消VAR变量,可以使用以下方式

unset VAR 

原文地址:https://blog.csdn.net/m0_49448331/article/details/140674954

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!