I am looking for a simple solution to retrieve the absolute path of the current script. It needs to be platform independent (I want it to work on linux, freebsd, macos and without bash).
- "readlink -f $0" works on linux but not on freebsd and macos: readlink doesn't have the "-f" option.
- "realpath $0" works on freebsd and linux but not on macos: I don't have this command.
EDIT : Solution for retrieve the path of the repository of the script :
DIR="$( cd "$( dirname "$0" )" && pwd )" (source : Getting the source directory of a Bash script from within )
It's «mostly portable». Pattern substitution and
pwd -P
is POSIX, and the latter is usually a shell built-in.readlink
is pretty common but it's not in POSIX.And I don't think there is a simpler mostly-portable way. If you really need something like that, I'd suggest you rather try to get realpath installed on all your systems.
For zsh scripts, FWIW: