我是 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_VARIABLE_PATH 变量的 test.dat,echo 只打印
TEST_VARIABLE_PATH=/somepath/
获取文件的位置没有覆盖变量。
假设如果我将第 1 行设为
TEST_VARIABLE_PATH=\`dirname $0\`/../
,源命令覆盖和回显打印
TEST_VARIABLE_PATH=/usr/project/workspace
为什么这个来源的行为不同?请帮我理解。