使用以下脚本可以避免程序使用绝对路径,增强程序的可移植性和可用性。
该方法灵感来自于Oracle的oui,并加以改良增加其通用性。
该文档包含shell和perl的代码,其他代码省略。
#/***************************/
#Oracle OUI的解决方法(很佩服啊)
#1.首先获得$0执行程序的相对路径(dirname命令实现);
#2.判断是否当前目录“.”,是执行pwd命令获得目录绝对路径;
#3.不是当前目录的用pwd命令获得当前目录,然后加上相对目录组成全路径。
#/***************************/
CMDDIR=`dirname $0`
if [ "$CMDDIR" = "." ]; then
CMDDIR=`pwd`;
fi
# Replace relative path with fully qualified path.
if [ ! "`echo $CMDDIR|grep '^/'`" ]; then
CMDDIR=`pwd`/$CMDDIR;
fi
#/***吾改进之,避免出现..目录***/
cd $CMDDIR
CMDDIR=`pwd`
#/***************************/
#借鉴oracle OUI perl的解决方法。
#/***************************/
#!/usr/bin/perl
use Cwd;
use File::Basename;
my $cwd;
if ($0 =~ m{^/}) {
$cwd = dirname($0);
} else {
my $dir = getcwd();
$cwd = dirname("$dir/$0");
}
chdir($cwd);
my $cwddir = getcwd();
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/13605188/viewspace-616012/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/13605188/viewspace-616012/
144

被折叠的 条评论
为什么被折叠?



