《Ubuntu — export和source命令》

《Ubuntu — export和source命令》1.exportexport是将一个变量导出,相当于局部变量导出成全局变量。2.source通常用法:sourcefilepath或./filepath功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之

大家好,欢迎来到IT知识分享网。

1.export

  export是将一个变量导出,相当于局部变量导出成全局变量。

 

2.source

  通常用法:source filepath 或 . /filepath

  功能:使当前shell读入路径为filepath的shell文件并依次执行文件中的所有语句,通常用于重新执行刚修改的初始化文件,使之立即生效,而不必注销并重新登录。例如,当我们修改了/etc/profile文件,并想让它立刻生效,而不用重新登录,就可以使用source命令,如source /etc/profile。

  source命令(从 C Shell 而来)是bash shell的内置命令;点命令(.),就是个点符号(从Bourne Shell而来)是source的另一名称。这从用法中也能看出来。

  需要注意:点命令只能执行脚本或者应用程序。但是如果一个文件里面有export变量需要导出就不能使用点命令了。要使用source。

  还有一种应用场景,当在一个脚本中想使用另一个脚本中的变量的时候,也只能使用source。

  《Ubuntu — export和source命令》

 

 

 

3.父shell和子shell的概念

  父shell与子shell,从shellA中启动一个shell,称之为shellB。 shellA为父shell,shellB为子shell。

  最常见的情况是在当前shell下执行脚本,这个脚本实际上是在子shell中执行的。

 

  《Ubuntu — export和source命令》

  可以看出当前的shell的PID是2514。

  执行一个测试脚本

  《Ubuntu — export和source命令》

 

 

   可以发现tesh.sh的父进程是bash。

 

4.export和souce的作用

  假如有一个脚本:

#test.sh
 
#!/bin/sh
export TEST_DIR=/home/test

  直接执行./test.sh

ubuntu@test-ubuntu:~$ ./test.sh
ubuntu@test-ubuntu:~$ echo $TEST_DIR   
 
ubuntu@test-ubuntu:~$

  发现没有值,因为子shell中并不会影响到父shell。

  但是假如变成这样

ubuntu@test-ubuntu:~$ source ./test.sh
ubuntu@test-ubuntu:~$ echo $TEST_DIR   
/home/test

  发现可以输出了.source(或点)命令通常用于重新执行刚修改的初始化文档,sh_profile和 .profile 等等.使它立即生效而不用去创建新的子shell。

  export是将一个变量导出,以给其他shell程序使用,能影响子shell。

  source 作用在本shell程序中执行,不启动子shell,所以可以影响脚本的父shell。

 

 

  

 

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/27864.html

(0)

相关推荐

发表回复

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

关注微信