如标题中所述,如果路径是相对路径或绝对路径,我需要确定何时运行程序:
./program #relative
dir/dir2/program #relative
~User/dir/dir2/program #absolute
/home/User/dir/dir2/program #absolute
Run Code Online (Sandbox Code Playgroud)
这是我的测试用例.我怎样才能在shell程序中这样做呢?
或者更一般地说,如何检查路径,$0在这种情况下,是相对的还是绝对的?
Jir*_*ika 23
if [[ "$0" = /* ]]
then
: # Absolute path
else
: # Relative path
fi
Run Code Online (Sandbox Code Playgroud)
rye*_*nus 12
任何一般的解决方案$path,而不仅仅是$0
[ "$path" != "${path#/}" ] && echo "absolute" || echo "relative"
Run Code Online (Sandbox Code Playgroud)
case "$directory" in
/*)
echo "absolute"
;;
*)
echo "relative"
;;
esac
Run Code Online (Sandbox Code Playgroud)