shell脚本源行为

时间:2012-11-21 08:15:59

标签: bash shell unix

我是shell脚本的新手。我有一个shell脚本来源另一个文件。另一个文件只是一个具有名称值对的文件。我在这里感到困惑。

test.dat
TEST_VARIABLE_PATH=/usr/project/workspace

脚本文件(test_script.sh)

TEST_VARIABLE_PATH=
source test.dat
echo ${TEST_VARIABLE_PATH}

上面的echo语句打印出不同的值,让我感到困惑。 在第1行,如果我做

TEST_VARIABLE_PATH=/somepath/

,即使我已经提供了test.dat,其中已经设置了TEST_VARIABLE_PATH变量,echo仅打印

TEST_VARIABLE_PATH=/somepath/

源文件没有覆盖变量。

假设我将第1行作为

TEST_VARIABLE_PATH=\`dirname $0\`/../

,源命令覆盖和回显打印

TEST_VARIABLE_PATH=/usr/project/workspace

为什么这个来源表现不同?请帮我理解。

1 个答案:

答案 0 :(得分:2)

好像你真的没有source文件。

要正确执行此操作,请输入文件的完整路径,例如:

source '/full/path/to/file'