Give variables more expressive names
This commit is contained in:
parent
6530695869
commit
6a90372fd7
38
realpath.sh
38
realpath.sh
@ -1,44 +1,42 @@
|
||||
#!/bin/sh
|
||||
p="${1%/}"
|
||||
|
||||
case "$1" in
|
||||
/*) p="${1#/}"
|
||||
r="";;
|
||||
*) p="${PWD#/}/$1";;
|
||||
/*) left="${1#/}";;
|
||||
*) left="${PWD#/}/$1";;
|
||||
esac
|
||||
|
||||
r=""
|
||||
result=""
|
||||
|
||||
while [ -n "$p" ]; do
|
||||
case "$p" in
|
||||
while [ -n "$left" ]; do
|
||||
case "$left" in
|
||||
*/*)
|
||||
seg="${p%%/*}"
|
||||
p="${p#*/}"
|
||||
seg="${left%%/*}"
|
||||
left="${left#*/}"
|
||||
;;
|
||||
*)
|
||||
seg="$p"
|
||||
p=""
|
||||
seg="$left"
|
||||
left=""
|
||||
;;
|
||||
esac
|
||||
case "$seg" in
|
||||
.)
|
||||
r="${r%/*}"
|
||||
result="${result%/*}"
|
||||
continue
|
||||
;;
|
||||
..)
|
||||
r="${r%/*/*}"
|
||||
result="${result%/*/*}"
|
||||
continue
|
||||
;;
|
||||
esac
|
||||
r="$r/$seg"
|
||||
target="$(readlink "$r")"
|
||||
result="$result/$seg"
|
||||
target="$(readlink "$result")"
|
||||
case "$target" in
|
||||
/*) p="${target}"
|
||||
r="";;
|
||||
/*) left="${target}"
|
||||
result="";;
|
||||
'') ;;
|
||||
*) p="${p%/*}/${target}";;
|
||||
*) left="${left%/*}/${target}";;
|
||||
esac
|
||||
p="${p#/}"
|
||||
left="${left#/}"
|
||||
done
|
||||
|
||||
echo "$r"
|
||||
echo "$result"
|
||||
|
Loading…
Reference in New Issue
Block a user