确定shell程序中的相对路径或绝对路径

时间:2012-07-09 21:57:32

标签: linux shell path

如标题所述,如果路径是相对的或绝对的,我需要确定程序何时运行:

./program #relative
dir/dir2/program #relative
~User/dir/dir2/program #absolute
/home/User/dir/dir2/program #absolute

这是我的测试用例。我怎样才能在shell程序中这样做呢?

或者更一般地说,如何在这种情况下检查路径$0是相对的还是绝对的?

4 个答案:

答案 0 :(得分:21)

if [[ "$0" = /* ]]
then
   : # Absolute path
else
   : # Relative path
fi

答案 1 :(得分:11)

任何DEALER的一般解决方案,而不仅仅是$path

POSIX One Liner

$0

答案 2 :(得分:5)

case "$directory" in
   /*)
      echo "absolute"
      ;;
   *)
      echo "relative"
      ;;
esac

答案 3 :(得分:-2)

if [ ${path:0:1} == / ]
then
     echo Absolute path
else
     echo Non-absolute path
fi