0

私はシェルスクリプトが初めてです。別のファイルを取得するシェル スクリプトがあります。別のファイルは、名前と値のペアを持つ単なるファイルです。ここで混乱しています。

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 を入手しても、エコーは印刷のみです

TEST_VARIABLE_PATH=/somepath/

ファイルをソースしても変数は上書きされませんでした。

行1が次のようになっているとします

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

、source コマンドが上書きされ、印刷がエコーされます

TEST_VARIABLE_PATH=/usr/project/workspace

このソースの動作が異なるのはなぜですか? 理解するのを手伝ってください。

4

1 に答える 1

2

sourceあなたは本当にファイルではないようです。

適切に行うには、次のようにファイルのフルパスを入力します。

source '/full/path/to/file'
于 2012-11-21T08:18:48.260 に答える