UNIX巧妙实现动态路径

使用以下脚本可以避免程序使用绝对路径,增强程序的可移植性和可用性。
该方法灵感来自于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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值