我正在寻找一种简单的解决方案来检索当前脚本的绝对路径。它需要独立于平台(我希望它能在linux,freebsd,macos和没有bash上工作)。
编辑: 检索脚本存储库路径的解决方案:
DIR =“$(cd”$(dirname“$ 0”)“&& pwd)”(来源:Getting the source directory of a Bash script from within)
答案 0 :(得分:1)
对于zsh脚本,FWIW:
#! /bin/zsh -
fullpath=$0:A
答案 1 :(得分:0)
#!/bin/sh
self=$(
self=${0}
while [ -L "${self}" ]
do
cd "${self%/*}"
self=$(readlink "${self}")
done
cd "${self%/*}"
echo "$(pwd -P)/${self##*/}"
)
echo ${self}
它主要是“便携式”。模式替换和pwd -P
是POSIX,后者通常是内置的shell。 readlink
非常常见,但它不在POSIX中。
我不认为有一种更简单的便携式方式。如果您确实需要这样的东西,我建议您尝试在所有系统上安装 realpath 。