linux 在shell脚本中获取该脚本的所在绝对路径2-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

linux 在shell脚本中获取该脚本的所在绝对路径2

简介:

脚本名:a.sh

位置:/tmp/whuang/study/Java

脚本内容:

Shell代码  收藏代码
  1. this_dir=`pwd`  
  2. file_name=`basename $0`  
  3. dirname $0|grep "^/" >/dev/null  
  4. if [ $? -eq 0 ];then  
  5.     this_dir=`dirname $0`  
  6. else  
  7.         dirname $0|grep "^\.\." >/dev/null  
  8.         retval=$?  
  9.         if [ $retval -eq 0 ];then  
  10.                this_dir=`dirname $0|sed "s#^#$this_dir/#"`  
  11.         else  
  12.                         dirname $0|grep "^\./" >/dev/null  
  13.                         retval=$?  
  14.                         if [ $retval -eq 0 ];then  
  15.                                 this_dir=`dirname $0|sed "s#^\.\(/.*\)#$this_dir\1#"`  
  16.                         else  
  17.                                 this_dir=`dirname $0|sed "s#^#$this_dir/#"`  
  18.                         fi  
  19.                 fi  
  20. fi  
  21. echo $this_dir  
 ----------------------------------------------

功能:获取脚本的绝对路径。

测试:

 

[root@ppc40 java]# pwd

/tmp/whuang/study/java

[root@ppc40 java]# sh a.sh

/tmp/whuang/study/java

[root@ppc40 java]# cd ..

[root@ppc40 study]# sh java/a.sh

/tmp/whuang/study/java

[root@ppc40 study]# sh ./java/a.sh

/tmp/whuang/study/java

 

[root@ppc40 study]# sh ../study/java/a.sh

/tmp/whuang/study/../study/java


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: