Change Directory in Subshell
There's a little trick you can use to get the absolute path from a relative path without changing the present working directory. The trick is to move to the relative path in a subshell, and then expand the working directory. For example:
export SRC_DIR=$(cd ..; pwd)
Relative Paths from Script Instead of Invocation Directory
To change to a relative path from a script's location, rather than the current working directory, you can use a parameter expansion or the dirname utility. I prefer dirname, since it's a little more explicit. Here are both examples.
# Using /usr/bin/dirname.
export SRC_DIR=$(cd "$(dirname "$0")/.."; pwd)
# Using the "remove matching suffix pattern" parameter expansion.
export SRC_DIR=$(cd "${0%/*}/.."; pwd)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…