这段SHELL是什么意思啊?

[复制链接]
查看11 | 回复3 | 2006-9-7 17:03:51 | 显示全部楼层 |阅读模式
PRG="$0"
while [ -h "$PRG" ]; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '.*/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`/"$link"
fi
done
回复

使用道具 举报

千问 | 2006-9-7 17:03:51 | 显示全部楼层
[php]PRG="$0"
执行的程序名
while [ -h "$PRG" ]; do
判断是否是个链接的东西
ls=`ls -ld "$PRG"`
以长格式显示连接文件
link=`expr "$ls" : '.*-> \(.*\)$'`
去掉没用的,取得真正链接指向的位置
if expr "$link" : '.*/.*' > /dev/null; then 如果连接指向的是个带有目录的文件
PRG="$link" 那么prg就直接等于链接实际指向的那个文件,也就是取得真正的位置,而不是链接名
else否则
PRG=`dirname "$PRG"`/"$link" 就是链接所在的目录加上链接实际指向的文件名
fi
done
[/php]
不知道我理解的有没有对,高手指点!!!!
回复

使用道具 举报

千问 | 2006-9-7 17:03:51 | 显示全部楼层
谢谢你.应该是这个意思.
回复

使用道具 举报

千问 | 2006-9-7 17:03:51 | 显示全部楼层


偶写Shell的功力浅薄啊。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行