来自在Bash中打开的文件的变量范围

时间:2014-01-23 15:25:53

标签: bash shell

我有一个打开两个文件的bash脚本,其中包含以下内容:

文件1:

#!/bin/bash
a='Sunday'

file2的:

#!/bin/bash
b=$a

这是我的代码段:

#!/bin/bash
. file1
. file2
echo $b

OUTPUT:星期日

这是我的问题:

  1. 我在shell脚本中打开file1时变量'a'的范围是什么?

  2. 如何使用这种范围创建shell变量?如下所示:

    #!/bin/bash
    a='Sunday'
    . file2
    echo $b
    
  3. 这可能吗?

1 个答案:

答案 0 :(得分:2)

使用.获取脚本执行该文件中的命令,就好像它们是内联编写的一样。采购不会引入额外的范围或环境。

无论是直接编写还是使用该行编写脚本,编写a='Sunday'都会产生相同的效果:它会在脚本的其余部分创建一个全局变量。这也解释了为什么file2可以看到$a,因为b=$a也会内联执行。