Chinaunix首页 | 论坛 | 博客
  • 博客访问: 389990
  • 博文数量: 165
  • 博客积分: 436
  • 博客等级: 下士
  • 技术积分: 887
  • 用 户 组: 普通用户
  • 注册时间: 2011-11-10 02:49
文章分类

全部博文(165)

文章存档

2012年(95)

2011年(70)

分类:

2011-11-20 18:50:13

原文地址:dirname $0 当前shell程序路径 作者:axis

shell中取得脚本所在目录的一个重要命令是dirname $0,

在实际应用中比pwd命令更方便,

basename $0 获得文件名
dirname $0 获得文件所在目录名

  1. #!/bin/sh

  2. #change to the directory in which this script resides

  3. cd `dirname $0`

  4. #just to show it worked right

  5. pwd

  6. #save

  7. TOPDIR=`pwd`

补充:如果使用soft link方式运行脚本,如何获得真实脚本所在的目录呢?
答案在: 

解决方案就是这个脚本:

SCRIPT_PATH="${BASH_SOURCE[0]}";
if ([ -h "${SCRIPT_PATH}" ]) then
 
while([ -h "${SCRIPT_PATH}" ]) do SCRIPT_PATH=`readlink "${SCRIPT_PATH}"`; done
fi
pushd
. > /dev/null
cd
`dirname ${SCRIPT_PATH}` > /dev/null
SCRIPT_PATH
=`pwd`;
popd  
> /dev/null

阅读(1107) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~