Linux脚本中获取脚本所在路径
Linux脚本中获取脚本所在路径
在 Linux 中,获取当前执行的脚本所在的路径是一个常见的需求,尤其是在脚本中需要引用相对路径时。以下是几种常用的方法:
方法 1:使用 dirname
和 $0
$0
是脚本的名称(包括路径),dirname
可以提取其目录部分。
1 |
|
说明:
dirname "$0"
:获取脚本的相对路径。cd ... && pwd
:切换到脚本所在目录并获取绝对路径。
方法 2:使用 BASH_SOURCE
(适用于 Bash)
BASH_SOURCE
是一个数组,${BASH_SOURCE[0]}
表示当前脚本的路径。
1 |
|
说明:
${BASH_SOURCE[0]}
:适用于 Bash,能够正确处理脚本被其他脚本引用的情况。
方法 3:使用 readlink
获取符号链接的真实路径
如果脚本是通过符号链接执行的,可以使用 readlink
获取真实路径。
1 |
|
说明:
readlink -f "$0"
:获取脚本的绝对路径,包括解析符号链接。dirname
:提取目录部分。
方法 4:兼容性更强的写法
结合 BASH_SOURCE
和 readlink
,适用于更多场景。
1 |
|
方法 5:直接使用 pwd
(不推荐)
如果脚本没有切换目录,可以直接使用 pwd
获取当前工作目录。
1 |
|
注意:
- 这种方法不推荐,因为如果脚本中切换了目录,
pwd
的结果会发生变化。
总结
- 推荐方法:使用方法 1 或方法 2,简单且兼容性强。
- 符号链接:如果脚本可能通过符号链接执行,使用方法 3 或方法 4。
- 避免方法 5:除非明确知道脚本不会切换目录。
通过以上方法,可以可靠地获取脚本所在的路径,便于在脚本中引用相对路径的资源。
蚂蚁🐜再小也是肉🥩!
Linux脚本中获取脚本所在路径
http://heibanbai.com.cn/posts/5000bb47/
“您的支持,我的动力!觉得不错的话,给点打赏吧 ୧(๑•̀⌄•́๑)૭”

微信支付

支付宝支付