#!/usr/bin/env bash SOURCE=${BASH_SOURCE[0]} while [ -L "$SOURCE" ]; do# resolve $SOURCE until the file is no longer a symlink DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) SOURCE=$(readlink"$SOURCE") [[ $SOURCE != /* ]] && SOURCE=$DIR/$SOURCE# if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located done DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd )
#!/usr/bin/env bash SOURCE=${BASH_SOURCE[0]} while [ -L "$SOURCE" ]; do# resolve $SOURCE until the file is no longer a symlink TARGET=$(readlink"$SOURCE") if [[ $TARGET == /* ]]; then echo"SOURCE '$SOURCE' is an absolute symlink to '$TARGET'" SOURCE=$TARGET else DIR=$( dirname"$SOURCE" ) echo"SOURCE '$SOURCE' is a relative symlink to '$TARGET' (relative to '$DIR')" SOURCE=$DIR/$TARGET# if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located fi done echo"SOURCE is '$SOURCE'" RDIR=$( dirname"$SOURCE" ) DIR=$( cd -P "$( dirname "$SOURCE" )" >/dev/null 2>&1 && pwd ) if [ "$DIR" != "$RDIR" ]; then echo"DIR '$RDIR' resolves to '$DIR'" fi echo"DIR is '$DIR'"