spark用の環境変数セットアップシェルプログラムを読んでいます。私はこの部分をかなり理解していません。
コードは以下の通りである:最初の部分で
# resolve links - $0 may be a softlink
this="${BASH_SOURCE:-$0}"
common_bin="$(cd -P -- "$(dirname -- "$this")" && pwd -P)"
script="$(basename -- "$this")"
this="$common_bin/$script"
# convert relative path to absolute path
config_bin="`dirname "$this"`"
script="`basename "$this"`"
config_bin="`cd "$config_bin"; pwd`"
this="$config_bin/$script"
export SPARK_PREFIX="`dirname "$this"`"/..
export SPARK_HOME="${SPARK_PREFIX}"
export SPARK_CONF_DIR="${SPARK_CONF_DIR:-"$SPARK_HOME/conf"}"
# Add the PySpark classes to the PYTHONPATH:
export PYTHONPATH="$SPARK_HOME/python:$PYTHONPATH"
export PYTHONPATH="$SPARK_HOME/python/lib/py4j-0.9-src.zip:$PYTHONPATH"
一部には、リンクを解決することであり、第2の部分で、絶対パスへの相対パスを変換するように言われていることをコメントによって言われています。
しかし、私はこれら2つの "this"の間に違いは見られません:this="$common_bin/$script"
とthis="$config_bin/$script"
。私は最初の4行はすでにリンクを解決し、変数 "this"に絶対パスを与えて、シェルが2番目の部分(2番目のコメントの後のコマンド)で再び同じことをするのはなぜですか?
ありがとうございます。
btwは、環境変数ではなく通常のシェル変数のように見えます。 –
ところで、質問に1つの質問。 ' - 'がしていることを尋ねるのは完全にうまくいくが、それは**自分の**の質問でなければならない。 (つまり、POSIXユーティリティ構文のガイドライン(http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap12.html)を見れば、自分で答えを見つけることができます)。 –