首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当Bash脚本通过符号链接执行时,如何获得它的路径?

问当Bash脚本通过符号链接执行时,如何获得它的路径?
EN

Unix & Linux用户
提问于 2020-07-31 15:57:23
回答 1查看 87关注 0票数 0

我想获得Bash脚本的路径,当它通过符号链接执行时。

在这种情况下,$0是-bash,而BASH_SOURCE是符号链接的路径。

我可以通过一些shell变量、内置shell命令或外部命令获得脚本的路径吗?

BASH_SOURCE是否总是保存初始符号链接的路径,即使脚本是通过多个间接(多个符号链接)执行的?

我可以使用ls和BASH_SOURCE始终检索脚本的路径吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-07-31 16:05:23

来自GNU的realpath或readlink -f可能会有所帮助:

代码语言:javascript
复制
$ ls -l foo.sh bar.sh whereami.sh
lrwxrwxrwx 1 ilkkachu ilkkachu  6 Jul 31 19:01 bar.sh -> foo.sh*
lrwxrwxrwx 1 ilkkachu ilkkachu 11 Jul 31 19:01 foo.sh -> whereami.sh*
-rwxr-xr-x 1 ilkkachu ilkkachu 36 Jul 31 19:02 whereami.sh*
$ cat whereami.sh
#!/bin/bash
echo "$BASH_SOURCE"
realpath "$BASH_SOURCE"
$ ./bar.sh
./bar.sh
/tmp/whereami.sh
票数 4
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/602248

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档