If readlink does not exist, we could recursively parse the output of ls -ld which, for symlinks, has the form "name -> target".
Note that we don't want to assume /usr/bin - I would just leave those full paths out and assume that $PATH points to ls, expr, and dirname (since there might be those people that have those in /bin or /usr/local/bin or wherever).
# Resolve symlinks.
while [ -h "$PRG" ]; do
ls=`/usr/bin/ls -ld "$PRG"`
link=`/usr/bin/expr "$ls" : '^.*-> \(.*\)$'`
if /usr/bin/expr "$link" : '^/'> /dev/null; then
PRG=`whence "$prg"`> /dev/null 2>&1
(found this here: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4789162 )
This bug was previously known as http://jira.rhq-project.org/browse/RHQ-1752
This bug is related to RHQ-1391
This bug relates to RHQ-1520
mass add of key word FutureFeature to help track
Similar suggestion has been done in JBAS: