Ответ 1
if [[ "$0" = /* ]]
then
: # Absolute path
else
: # Relative path
fi
Как указано в заголовке, мне нужно определить, когда запускается программа, если путь относительный или абсолютный:
./program #relative
dir/dir2/program #relative
~User/dir/dir2/program #absolute
/home/User/dir/dir2/program #absolute
Это мои тестовые примеры. Как я могу это сделать в программе оболочки?
Или, в общем, как проверить, является ли путь $0
в этом случае относительным или абсолютным?
if [[ "$0" = /* ]]
then
: # Absolute path
else
: # Relative path
fi
Общее решение для любого $path
, а не просто $0
[ "$path" != "${path#/}" ] && echo "absolute" || echo "relative"
case "$directory" in
/*)
echo "absolute"
;;
*)
echo "relative"
;;
esac
if [ ${path:0:1} == / ]
then
echo Absolute path
else
echo Non-absolute path
fi