为什么要在Bash函数中设置环境变量,但不能在脚本本身中设置

帕勒姆

为什么这样做:

# a.sh
setEnv() {
    export TEST_A='Set'
}

如果不是这样:

# b.sh
export TEST_B='Set'

例如:

> source a.sh
> setEnv
> env | grep TEST_A
TEST_A=Set
> b.sh
> env | grep TEST_B

我知道为什么无法运行脚本以及如何使脚本运行(source b.sh等等),但是我很好奇该函数为何起作用。如果重要的话,这是在OS X上。

切普纳

执行一个函数本身并不会像启动一个新进程那样b.sh

在手册页中(强调最后一句话):

FUNCTIONS
       A shell function, defined  as  described  above  under  SHELL  GRAMMAR,
       stores  a  series  of commands for later execution.  When the name of a
       shell function is used as a simple command name, the list  of  commands
       associated with that function name is executed.  **Functions are executed
       in the context of the current shell;  no  new  process  is  created  to
       interpret  them  (contrast  this with the execution of a shell script).**

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在python中设置调用bash脚本的环境变量

来自分类Dev

bash在脚本中的命令之前设置环境变量

来自分类Python

为什么在python中设置的环境变量不能持续存在?

来自分类Java

在ant脚本中设置环境变量

来自分类Python

在python脚本中设置环境变量

来自分类Dev

在TCL脚本中设置环境变量

来自分类Dev

在git bash中设置环境变量

来自分类Dev

为什么bash $()可以设置环境变量?

来自分类Dev

tcsh脚本中设置的环境变量不适用于bash脚本

来自分类Dev

在bash(或其他)中设置变量环境变量

来自分类Dev

在Rmarkdown中的bash中设置环境变量

来自分类Dev

在python脚本中调用bash配置文件以设置环境变量

来自分类Dev

如何在将由Bash运行的脚本的shebang(#!)中设置环境变量?

来自分类Dev

在systemd服务文件中从sh脚本设置环境变量

来自分类Dev

检查是否在配置脚本中设置了环境变量?

来自分类Java

检查是否在Ant脚本中设置了环境变量

来自分类Dev

在Shell脚本OS X中设置环境变量

来自分类Dev

在Shell脚本中为React应用设置环境变量

来自分类Dev

Jenkins-在执行脚本中设置环境变量

来自分类Dev

从Jenkins中的Groovy脚本设置环境变量

来自分类Dev

Tcl-在脚本中设置父环境变量

来自分类Dev

为什么在bash 4.1.2中不能访问带有破折号的环境变量?

来自分类Linux

使用Bash在Linux中设置环境变量

来自分类Linux

使用Bash在Linux中设置环境变量

来自分类Dev

在bash中的命令之前设置环境变量

来自分类Dev

如何在git bash中设置环境变量?

来自分类Dev

检查在Unix Shell脚本中设置环境变量的简洁方法是什么?

来自分类Dev

在PowerShell脚本中设置用户环境变量的正确方法是什么?

来自分类Dev

为什么不能在语言环境中设置LC_ALL的值?

Related 相关文章

  1. 1

    在python中设置调用bash脚本的环境变量

  2. 2

    bash在脚本中的命令之前设置环境变量

  3. 3

    为什么在python中设置的环境变量不能持续存在?

  4. 4

    在ant脚本中设置环境变量

  5. 5

    在python脚本中设置环境变量

  6. 6

    在TCL脚本中设置环境变量

  7. 7

    在git bash中设置环境变量

  8. 8

    为什么bash $()可以设置环境变量?

  9. 9

    tcsh脚本中设置的环境变量不适用于bash脚本

  10. 10

    在bash(或其他)中设置变量环境变量

  11. 11

    在Rmarkdown中的bash中设置环境变量

  12. 12

    在python脚本中调用bash配置文件以设置环境变量

  13. 13

    如何在将由Bash运行的脚本的shebang(#!)中设置环境变量?

  14. 14

    在systemd服务文件中从sh脚本设置环境变量

  15. 15

    检查是否在配置脚本中设置了环境变量?

  16. 16

    检查是否在Ant脚本中设置了环境变量

  17. 17

    在Shell脚本OS X中设置环境变量

  18. 18

    在Shell脚本中为React应用设置环境变量

  19. 19

    Jenkins-在执行脚本中设置环境变量

  20. 20

    从Jenkins中的Groovy脚本设置环境变量

  21. 21

    Tcl-在脚本中设置父环境变量

  22. 22

    为什么在bash 4.1.2中不能访问带有破折号的环境变量?

  23. 23

    使用Bash在Linux中设置环境变量

  24. 24

    使用Bash在Linux中设置环境变量

  25. 25

    在bash中的命令之前设置环境变量

  26. 26

    如何在git bash中设置环境变量?

  27. 27

    检查在Unix Shell脚本中设置环境变量的简洁方法是什么?

  28. 28

    在PowerShell脚本中设置用户环境变量的正确方法是什么?

  29. 29

    为什么不能在语言环境中设置LC_ALL的值?

热门标签

归档