export方法_import怎么用

export方法_import怎么用基础命令学习目录首页export的基本作用就是将父shell中的局部变量设置为环境变量,使得该变量可以在子shell中使用。下面设置两种情景对export进行原理解析。情景1.有一个名为myexport.sh的脚本,内容如下:#!/bin/shexportMY_PATH=/usr/local12在linux环境中打开终端运行该shell$shmy…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

  

基础命令学习目录首页

 

export 的基本作用就是将父shell中的局部变量设置为环境变量,使得该变量可以在子shell中使用。下面设置两种情景对export进行原理解析。
情景

 1. 有一个名为myexport.sh的脚本,内容如下:
#!/bin/sh

export MY_PATH=/usr/local12
在linux环境中打开终端运行该shell
 
$sh myexport.sh

$echo $MY_PATH

$123
运行该shell后在终端无法看到该环境变量的值。

 – 在一个终端用export设置环境变量后再其他终端不可见。
原因

  首先要提到进程,进程是一个运行着的程序,是代码的动态形式,进程有如下属性:

独立的内核堆栈

进程控制块

独立的存储空间

由于每个进程有自己独立的存储空间,所以进程间的的数据是不可见的,进程间的交互需要用到进程间通信。每一个shell都是一个独立的进程,所以在一个进程内的操作通常不会影响到另一个进程的内容,也不会被另一个进程所看到。所以上面第二种情景中,不同的终端开启了不同的shell,这些终端是相互独立的进程,彼此无论如何设置环境变量,相互都是不可见的。(写入到系统配置文件中的环境变量那就是通信了。)
export命令用于将父shell的局部变量全局化,这种全局化的意思就是让子shell可见。在父shell中执行一个子shell,会启动一个新的进行——子进程,故子shell即是一个独立于父shell的进程,父子shell的存储空间是相互不可见的(即子shell看不到父shell中的变量),如果想让子shell看到父shell的变量就需要将该变量从父shell的独立存储空间复制到子shell的独立存储空间,子shell看到的变量其实是自己进程空间的内容,而不是父进程的内容,只不过这另个空间的变量的名称和值相同而已。故export并没有采用什么高深的技术,只是将父进程空间的内容复制到子进程而已。
Linux中的父子进程是说父进程可以管理子进程,这种管理主要体现在三个方面:生、管、死,即父进程可以创建子进程,可以把上面export的例子算作一种管理吧,父进程死则子进程必须死,子进程死对父进程没有影响。其实除了生死之外,父子进程都是独立的进程。(父进程可以生子进程,为什么不叫母进程呢?英文是 parent process,可不是 father process 。这个涉及到了历史和文化问题,不讨论了。)
结果

那么问题来了,如何将情景1中的myexport.sh中的环境变量导入到当前进程中来呢?首先说明,父进程可以将自己的环境变量写入到子进程的空间中,但是子进程无法将自己空间的数据写入到父进程中(至少export命令做不到)。那么想要让子shell中的变量在父shell可见,最好的办法就是不要成为子shell,即只将该shell的内容导入到”父“shell中,而不执行该shell。这样用到的导入命令是”.” 和 ”source“,这就类似于c语言中的”#include”,用法如下:
$. myexport.sh  # or $source myexport.sh

$echo $MY_PATH

/usr/local

———————

作者:若有所思HS

来源:CSDN

原文:https://blog.csdn.net/u012150792/article/details/50583972

版权声明:本文为博主原创文章,转载请附上博文链接!
 
 
常用用法
# 功能说明:设置或显示环境变量。

# export [-fnp][变量名称]=[变量设置值]

# 只在本次登录中有效
# 再增加的路径用:追加

export PATH=$PATH:/home/jason001123456
 
说明
在shell中执行程序时,shell会提供一组环境变量。export可新增,修改或删除环境变量,供后续执行的程序使用。export的效力仅及于该此登陆操作。
参数:
 
 -f  代表[变量名称]中为函数名称。

 -n  删除指定的变量。变量实际上并未删除,只是不会输出到后续指令的执行环境中。

 -p  列出所有的shell赋予程序的环境变量123
 
延伸
export设置环境变量是暂时的,只在本次登录中有效,可修改如下文件来使命令长久有效。
 
1. 修改profile文件
#vi /etc/profile1
在里面加入:
 
export PATH=”$PATH:/opt/au1200_rm/build_tools/bin”1
这个在我们的机器上是大家共用的,建议不修改这个,只修改自己根路径下的。
 
2. 修改本id根路径下的.bashrc或.bash_profile文件:
 
# vi /home/zhaodw/.bash_profile1
在里面加入:
 
export PATH=”$PATH:/opt/au1200_rm/build_tools/bin”1
注意:

1、执行脚本时是在一个子shell环境运行的,脚本执行完后该子shell自动退出;

2、一个shell中的系统环境变量才会被复制到子shell中(用export定义的变量);

3、一个shell中的系统环境变量只对该shell或者它的子shell有效,该shell结束时变量消失(并不能返回到父shell中)。

4、不用export定义的变量只对该shell有效,对子shell也是无效的。

———————

作者:jason_cuijiahui

来源:CSDN

原文:https://blog.csdn.net/jason_cuijiahui/article/details/79408778

版权声明:本文为博主原创文章,转载请附上博文链接!

 

转载于:https://www.cnblogs.com/machangwei-8/p/10381608.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196374.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • pychram2021.12激活【2021.10最新】

    (pychram2021.12激活)这是一篇idea技术相关文章,由全栈君为大家提供,主要知识点是关于2021JetBrains全家桶永久激活码的内容IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.net/100143.html41MD9IQHZL-eyJsa…

    2022年3月30日
    54
  • Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程

    Win10安装Ubuntu18.04双系统,图文详解,全网最详细教程博主经历过多次双系统的安装与卸载,所以这次安装就记录下全过程,能让后面的同学少走弯路。安装目录一、查看电脑信息1、BIOS模式2、硬盘数二、制作系统盘1、下载镜像源2、制作U盘启动盘三、分配硬盘空间四、安装Ubuntu18.041、进入U盘引导项2、安装设置一、查看电脑信息1、BIOS模式Win+R,输入msinfo32回车,出现系统界面,可查看BIOS模式:本教程只适合BIOS模式为UEFI的电脑,如果BIOS模式为传统的,请查看其他对应教程。2、硬盘数此电脑——>磁盘管理,可以.

    2022年7月24日
    7
  • idea2021.4.14版本永久激活码_通用破解码

    idea2021.4.14版本永久激活码_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月16日
    50
  • 以管理员身份修改hosts文件_如何修改hosts文件权限

    以管理员身份修改hosts文件_如何修改hosts文件权限第一步先在目录C:\Windows\System32\drivers\etc下找到host文件。右键点开属性,取消勾选只读。进入“安全”点击编辑选择允许修改。以管理员身份运行powershell,输入指令cddrivers\etc跳转到该目录下,再输入指令notepadhosts回车弹出host文件窗…

    2022年10月12日
    3
  • 常用的jquery鼠标事件_html5回到顶部

    常用的jquery鼠标事件_html5回到顶部jQuery-doubleTap是一款非常有用的鼠标双击事件或移动设备的触摸双击事件检测jQuery插件。该插件通过对“click”和“touch”的简单代码优化来实现鼠标双击或触摸双击事件的检测。使用方法要检测双击事件需要在页面中引入jQuery和jquery-doubleTap.js文件。初始化插件jquery-doubleTap.js的实现代码非常简单:首先判断是鼠标点击事件还是触摸点击事件…

    2022年10月1日
    4
  • 1040. 有几个PAT(25)- PAT乙级真题

    1040. 有几个PAT(25)- PAT乙级真题1040.有几个PAT(25)字符串APPAPT中包含了两个单词“PAT”,其中第一个PAT是第2位(P),第4位(A),第6位(T);第二个PAT是第3位(P),第4位(A),第6位(T)。现给定字符串,问一共可以形成多少个PAT?输入格式:输入只有一行,包含一个字符串,长度不超过105,只包含P、A、T三种字母。输出格式:在一行中输出给定字符串中包含多少个PAT。由于结果可能比较大,只输出对…

    2022年5月1日
    46

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号