0

我正在尝试通过 myDeploy.sh 导出变量,但未设置导出。当我回声时,它没有回声。但是,当我在命令上明确设置变量时,它会正确设置并回显。下面是我的代码片段。

我的部署.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

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

4

1 回答 1

6

像这样运行你的脚本

. ./script

或者

source script

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

从手册:

. 文件名[参数]

从当前 shell 上下文中的文件名参数读取并执行命令。如果文件名不包含斜杠,PATH则使用该变量查找文件名。当 Bash 不在POSIX模式下时,如果在$PATH. 如果提供了任何参数,它们将在 执行filename时成为位置参数。否则位置参数不变。返回状态是最后执行的命令的退出状态,如果没有执行任何命令,则返回零。如果未找到文件名或无法读取文件名,则返回状态为非零。此内置函数等效于source.

于 2013-07-25T08:03:22.003 回答