我是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
为什么这个来源表现不同?请帮我理解。
答案 0 :(得分:2)
好像你真的没有source
文件。
要正确执行此操作,请输入文件的完整路径,例如:
source '/full/path/to/file'