前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >bash shell:获取当前脚本的绝对路径(pwd/readlink)

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

作者头像
10km
发布2019-05-25 22:02:57
8.4K0
发布2019-05-25 22:02:57
举报
文章被收录于专栏:10km的专栏10km的专栏

版权声明:本文为博主原创文章,转载请注明源地址。 https://cloud.tencent.com/developer/article/1433580

有时候,我们需要知道当前执行的输出shell脚本的所在绝对路径,可以用dirname实现。

我们知道 dirname 可以获取一个文件所在的路径,dirname的用处是:

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

下面是dirname的命令行说明:

从上面的描述可知道,直接从dirname返回的未必是绝对路径,取决于提供给dirname的参数是否是绝对路径。

所以下面这样的代码中SHELL_FOLDER中不一定是绝对路径

代码语言:javascript
复制
SHELL_FOLDER=$(dirname "$0")

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

代码语言:javascript
复制
SHELL_FOLDER=$(cd "$(dirname "$0")";pwd)

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

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

代码语言:javascript
复制
SHELL_FOLDER=$(dirname $(readlink -f "$0"))

参考:

http://my.oschina.net/leejun2005/blog/150662

http://blog.csdn.net/zz198808/article/details/9319479

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年07月14日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档