0
|
1 |
#!/bin/sh
|
|
2 |
|
|
3 |
FILE="$1"
|
|
4 |
RES="$FILE"
|
|
5 |
|
|
6 |
CUT_ARG="-b1"
|
|
7 |
if [ `uname -s` = "QNX" ]; then
|
|
8 |
# QNX does not understand "-b1"
|
|
9 |
CUT_ARG="-c1"
|
|
10 |
fi
|
|
11 |
|
|
12 |
if [ `echo $FILE | cut $CUT_ARG` = "/" ]; then
|
|
13 |
true
|
|
14 |
else
|
|
15 |
RES="$PWD/$FILE"
|
|
16 |
test -d "$RES" && RES="$RES/"
|
|
17 |
RES=`echo "$RES" | sed "s,/\(\./\)*,/,g"`
|
|
18 |
|
|
19 |
# note: this will only strip 1 /path/../ from RES, i.e. given /a/b/c/../../../, it returns /a/b/../../
|
|
20 |
RES=`echo "$RES" | sed "s,\(/[^/]*/\)\.\./,/,g"`
|
|
21 |
|
|
22 |
RES=`echo "$RES" | sed "s,//,/,g" | sed "s,/$,,"`
|
|
23 |
fi
|
|
24 |
echo $RES #return
|
|
25 |
|