ITPub博客

首页 > Linux操作系统 > Linux操作系统 > UNIX巧妙实现动态路径

UNIX巧妙实现动态路径

原创 Linux操作系统 作者:china_yebin 时间:2009-10-05 19:47:00 0 删除 编辑

使用以下脚本可以避免程序使用绝对路径,增强程序的可移植性和可用性。
该方法灵感来自于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/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-06-11

  • 博文量
    32
  • 访问量
    51850