====== source ======
Possible test scenario:
- call from another directory by full path ''/home/user/bin/myscripth.sh''
- add ''/home/user/bin'' to PATH and then call from another directory by ''myscript.sh''
- create symlink to script and call using symlink. Check for relative and absolute symlinks.
- it should work also if it is sourced ''source'' or ''.''
The best is to create setup/installer script which hardcode path to one shared script.
Another solutions:
#!/bin/sh
MY_DIR=$(dirname $(readlink -f $0))
$MY_DIR/other_script.sh
DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
# Works correctly if script is sourced from another one
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd -P "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
cur_file="${BASH_SOURCE[${#BASH_SOURCE[@]} - 1]}"
cur_dir="$(dirname "${cur_file}")"
''`BASH_SOURCE'
An array variable whose members are the source filenames where the
corresponding shell function names in the `FUNCNAME' array
variable are defined. The shell function `${FUNCNAME[$i]}' is
defined in the file `${BASH_SOURCE[$i]}' and called from
`${BASH_SOURCE[$i+1]}'
''