有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname实现。
我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是:

输出已经去除了尾部的”/”字符部分的名称;如果名称中不包含”/”,
则显示”.”(表示当前目录)。

下面是dirname的命令行说明:

从上面的描述可知道,直接从dirname返回的未必是绝对路径,取决于提供给dirname的参数是否是绝对路径。
所以下面这样的代码中SHELL_FOLDER中不一定是绝对路径

SHELL_FOLDER=$(dirname "$0")

需要用cd和pwd命令配合获取脚本所在绝对路径,正确的写法是这样的,

SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)

如果你觉得上面的写法比较麻烦,还有一个方式获取脚本的绝对路径,就是借助readlink命令,下面是readlink的命令行说明:

所以用readlink命令我们可以直接获取$0参数的全路径文件名,然后再用dirname获取其所在的绝对路径:

SHELL_FOLDER=$(dirname $(readlink -f "$0"))

参考:
http://my.oschina.net/leejun2005/blog/150662
http://blog.csdn.net/zz198808/article/details/9319479

bash shell:获取当前脚本的绝对路径(pwd/readlink)相关推荐

  1. Shell中获取当前脚本的绝对路径: $( cd “$( dirname “${BASH_SOURCE[0]}“ )“ pwd)

    Shell中获取当前脚本的绝对路径:  $( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd) 参考链 ...

  2. shell 获取运行脚本所在目录

    可以使用以下命令来获取shell脚本所在目录: #!/bin/bash # 获取当前脚本所在目录 current_dir=$(cd $(dirname $0); pwd) echo $current_ ...

  3. linux脚本获取当前用户,bash shell 获取当前正在执行脚本的绝对路径

    一般我们写Shell脚本的时候,都倾向使用绝对路径,这样无论脚本在什么目录执行,都应该起到相同的效果,但是有些时候,我们设计一个软件包中的工具脚本,可能使用相对路径更加灵活一点,因为你不知道用户会在哪 ...

  4. linux shell readlink,linux shell readlink 获取当前脚本文件绝对路径

    当前脚本绝对路径:readlink -m $0 readlink命令简介 Linux中的readlink命令用于打印解析的符号链接或规范文件名.用简单的话来说,只要我们有一个符号链接,我们就想知道它代 ...

  5. shell获取执行脚本路径

    #!/bin/bashBASEPATH=$(cd `dirname $0`; pwd)

  6. linux shell获取当前脚本所在目录

    1 . 获得shell脚本所在的绝对路径 CURRENT_DIR=$(cd $(dirname $0); pwd) 或者 CURRENT_DIR=$(cd `dirname $0`; pwd) 执行步 ...

  7. linux执行windows创建的脚本,如何在Windows 10上创建和运行Bash Shell脚本 | MOS86

    随着Windows 10的到来您还可以将Bash命令合并到Windows批处理文件或PowerShell脚本中. 如果你知道你是什么Windows和UNIX使用不同的行尾字符,Windows文件系统可 ...

  8. shell 获取ora报错信息_带你了解企业是如何编写脚本的-第2篇:Shell脚本规范

    在带你了解企业是如何编写脚本的-第一篇:认识脚本这篇文章中,我对脚本进行了一些基本的讲解,那么今天我们就来了解一下Shell脚本有哪些规范(约定俗成). 俗话说无规矩不成方圆,想要长远的发展就需要制定 ...

  9. 在shell 脚本中获取该脚本的所在目录

    场景应该是这样的: 命令行获取文件所在路径,怎么办? cd 到文件目录,2 pwd 输出. 那么在 .sh 脚本执行时,怎么获取到该脚本的绝对路径呢? 使用dirname和{BASH_SOURCE[0 ...

最新文章

  1. 51Nod1556 计算
  2. boxfilter 函数
  3. java url参数转换:_提示:通过URL激活并发送参数
  4. 使用Chameleon,Shrinkwrap,Drone / Graphene与Arquillian进行Java EE集成测试
  5. 笨办法学linux dhcp,iptables使用指南(上)
  6. prev php,PHP prev() 函数 ——jQuery中文网
  7. BAPI:BAPI_PRODORDCONF_CREATE_TT (TCODE:CO11N)
  8. nofollow标签_SEO技术动态:谷歌升级Nofollow标签的作用
  9. C#之xml配置文件读写
  10. 工具类网站推荐:实用工具汇总共30000个,速收藏
  11. 2022-2027年中国SPA水疗行业市场调研及未来发展趋势预测报告
  12. 国家测绘法宣传日专题知识分享
  13. 小巷开店问题(第三题)
  14. html让video元素居中,CSS实现元素居中的五种方法
  15. 四年级计算机入门教案,四年级下册计算机教案
  16. 深度学习(五):对对联,根据上联,对下联
  17. 荐书|《DBT技巧训练手册》:宝贝,你就是你活着的原因
  18. 不写默认无参构造方法,调用自定义构造方法时报错No constructor found in com...
  19. 使用nid工具修改db_name和DBID
  20. 高薪程序员面试题精讲系列02之高薪面试经验分享

热门文章

  1. vuex原理解析并实现一个简单的vuex
  2. 【沃顿商学院学习笔记】公益创业——03确定市场细分Identify market segmentation
  3. 主要DSP芯片厂商及其产品
  4. 动态网站搭建(jsp+servlet)
  5. 20世纪最好的10个算法
  6. 针对英夫利昔单抗或阿达木单抗的抗体存在与否决定转用依那西普的疗效
  7. 计算机控制技术专业全球排名,2019QS世界大学专业排名,快来看看!
  8. Ansible学习笔记——vault加密
  9. Web2.0网络社区用户激励机制调研
  10. 干货 | 图解算法、网络编程等,统统都有!