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
|
#!/bin/sh
|
||||||
p="${1%/}"
|
|
||||||
|
|
||||||
case "$1" in
|
case "$1" in
|
||||||
/*) p="${1#/}"
|
/*) left="${1#/}";;
|
||||||
r="";;
|
*) left="${PWD#/}/$1";;
|
||||||
*) p="${PWD#/}/$1";;
|
|
||||||
esac
|
esac
|
||||||
|
|
||||||
r=""
|
result=""
|
||||||
|
|
||||||
while [ -n "$p" ]; do
|
while [ -n "$left" ]; do
|
||||||
case "$p" in
|
case "$left" in
|
||||||
*/*)
|
*/*)
|
||||||
seg="${p%%/*}"
|
seg="${left%%/*}"
|
||||||
p="${p#*/}"
|
left="${left#*/}"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
seg="$p"
|
seg="$left"
|
||||||
p=""
|
left=""
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
case "$seg" in
|
case "$seg" in
|
||||||
.)
|
.)
|
||||||
r="${r%/*}"
|
result="${result%/*}"
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
..)
|
..)
|
||||||
r="${r%/*/*}"
|
result="${result%/*/*}"
|
||||||
continue
|
continue
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
r="$r/$seg"
|
result="$result/$seg"
|
||||||
target="$(readlink "$r")"
|
target="$(readlink "$result")"
|
||||||
case "$target" in
|
case "$target" in
|
||||||
/*) p="${target}"
|
/*) left="${target}"
|
||||||
r="";;
|
result="";;
|
||||||
'') ;;
|
'') ;;
|
||||||
*) p="${p%/*}/${target}";;
|
*) left="${left%/*}/${target}";;
|
||||||
esac
|
esac
|
||||||
p="${p#/}"
|
left="${left#/}"
|
||||||
done
|
done
|
||||||
|
|
||||||
echo "$r"
|
echo "$result"
|
||||||
|
Loading…
Reference in New Issue
Block a user