Chinaunix首页 | 论坛 | 博客
  • 博客访问: 150108
  • 博文数量: 24
  • 博客积分: 455
  • 博客等级: 下士
  • 技术积分: 309
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-22 09:43
文章分类

全部博文(24)

文章存档

2013年(7)

2012年(5)

2011年(11)

2010年(1)

我的朋友

分类: LINUX

2011-11-17 11:25:03

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

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

☆彼岸★花开2011-11-19 19:35:12

确实很方便

weichongli2011-11-17 15:34:35

while readlink ....
哈哈哈,试试
pwd -P