无法通过脚本文件导出变量

时间:2013-07-25 07:51:45

标签: linux bash

我正在尝试通过myDeploy.sh导出变量,但导出未设置。当我回应它时,它不会回响。但是,当我在命令中明确设置变量时,它会正确设置并回响.Below是我代码的片段。

myDeploy.sh

 #!/bin/bash

# export the build root

export BUILD_ROOT=/tibco/data/GRISSOM2

export CUSTOM1=/tibco/data/GRISSOM2/DEPLOYMENT_ARTIFACTS/common/MDR_ITEM_E1/rulebase

export CLEANUP=$BUILD_ROOT/DEPLOYMENT_ARTIFACTS/common

cd $BUILD_ROOT/DEPLOYMENT_ARTIFACTS/common

当我回应echo $BUILD_ROOT时,它并没有回应我的道路。但是当我在命令提示符上明确地执行此操作时,如

[root@krog3-rhel5-64 GRISSOM2]# export BUILD_ROOT=/tibco/data/GRISSOM2

它设置正确并且也回响。我错过了什么?

1 个答案:

答案 0 :(得分:5)

一样运行你的脚本

. ./script

source script

将在当前shell上下文中执行您的脚本(不创建子shell),并且在当前 shell中可以使用脚本中设置的环境变量。

从手册:

  

filename [参数]

     

从当前的 filename 参数中读取并执行命令   shell语境。如果 filename 不包含斜杠,则为PATH变量   用于查找文件名。当Bash不在POSIX模式时,当前   如果在$PATH中找不到文件名,则搜索目录。如果有的话   提供参数,它们成为时的位置参数    filename 已执行。否则位置参数是   不变。返回状态是最后一个命令的退出状态   执行,如果没有执行命令则为零。如果 filename 不是   发现或无法读取,返回状态为非零。这内置   相当于source