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


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

相关文章
复制查到到的文件到另一个目录(shell脚本)
Test:find ../../res.bak/item/ -type f -name "*.jpg" |xargs -n1 -i echo {}."abc" 控制台上可看到如下信息:   find .
597 0
【shell 脚本】两种登录方式
#!/bin/bashecho "while 方法!"echo "请输入登录用户名:"read name1if test $name1 = "yang"then  echo "登录成功"else  echo "登录失败,请输入正确的用户名:"  read nam...
448 0
Windows下记事本编辑的Shell脚本放到Linux下执行出错,格式问题(/bin/bash^M: bad interpreter: 没有那个文件或目录)
错误:   /bin/bash^M: bad interpreter: 没有那个文件或目录   解决方案: 运行脚本时出现了这样一个错误,打开之后并没有找到所谓的^M,查了之后才知道原来是文件格式的问题,也就是linux和windows之间的不完全兼容。
762 0
阿里云ECS云服务器初始化设置教程方法
阿里云ECS云服务器初始化是指将云服务器系统恢复到最初状态的过程,阿里云的服务器初始化是通过更换系统盘来实现的,是免费的,阿里云百科网分享服务器初始化教程: 服务器初始化教程方法 本文的服务器初始化是指将ECS云服务器系统恢复到最初状态,服务器中的数据也会被清空,所以初始化之前一定要先备份好。
3278 0
+关注
黄威的世界
我是一个热衷IT技术的人,希望自己不断地设计开发出对别人非常有用的软件。有近7年的java开发经验(包括2年Android开发经验)和一年左右的linux使用经验。擅长Java Web后台开发 ,喜欢研究新的各种实用技术
668
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载