Bash 获取脚本目录的多种方法114
在 Bash 脚本中,获取脚本目录对于读取配置、加载数据或执行其他特定于目录的操作至关重要。本文将全面介绍在 Bash 中获取脚本目录的多种方法,包括使用内置命令、特殊变量和外部工具。
内置命令
1. cd -P
cd -P 命令将打印当前工作目录的绝对路径。它可以与重定向一起使用以保存脚本目录。```Bash
#!/bin/bash
# 使用 cd -P 命令获取脚本目录
SCRIPT_DIR=$(cd -P -- "$(dirname -- "$0")" && pwd -P)
```
2. pwd -P
pwd -P 命令本身打印当前工作目录的绝对路径,因此不需要重定向。```Bash
#!/bin/bash
# 使用 pwd -P 命令获取脚本目录
SCRIPT_DIR=$(pwd -P)
```
特殊变量
3. $0
$0 特殊变量包含当前正在执行的脚本的文件名。它可以与 dirname 命令一起使用以获取脚本目录。```Bash
#!/bin/bash
# 使用 $0 特殊变量获取脚本目录
SCRIPT_DIR=$(dirname -- "$0")
```
外部工具
4. readlink -f
readlink -f 工具解析符号链接并打印目标文件的绝对路径。它可以与 basename 命令一起使用以获取脚本目录。```Bash
#!/bin/bash
# 使用 readlink -f 和 basename 命令获取脚本目录
SCRIPT_DIR=$(readlink -f "$0" | basename -- "$(dirname --) ")
```
5. which
which 工具搜索并打印命令的可执行文件的位置。它可以与 basename 命令一起用于以类似于 readlink -f 的方式获取脚本目录。```Bash
#!/bin/bash
# 使用 which 和 basename 命令获取脚本目录
SCRIPT_DIR=$(which -- "$0" | basename -- "$(dirname --) ")
```
相对路径
6. dirname -- "$0"
dirname -- "$0" 返回当前正在执行的脚本的文件路径,不包括文件名。它通常与 cd 命令结合使用以获取相对脚本目录。```Bash
#!/bin/bash
# 使用 dirname -- "$0" 获取相对脚本目录
cd "$(dirname -- "$0")"
# 现在,您可以在相对路径中使用 pwd 命令
PWD=$(pwd)
```
其他方法
7. awk
awk 是一个文本处理工具,可用于从命令行中提取信息。它可以用于解析 $0 特殊变量并获取脚本目录。```Bash
#!/bin/bash
# 使用 awk 获取脚本目录
SCRIPT_DIR=$(awk -F/ '{print $NF}'
2024-12-07
下一篇:趣味无穷的 Bash 脚本

客户脚本语言详解:深入理解浏览器端的编程世界
https://jb123.cn/jiaobenyuyan/65389.html

快速掌握脚本语言:学习策略与技巧详解
https://jb123.cn/jiaobenyuyan/65388.html

Perl字体颜色控制详解:从基础语法到高级技巧
https://jb123.cn/perl/65387.html

Python趣味编程:玩转京东自营商品数据
https://jb123.cn/python/65386.html

JavaScript 版本详解及兼容性策略
https://jb123.cn/javascript/65385.html
热门文章

指定 Java 路径以运行 Bash 脚本
https://jb123.cn/bash/13396.html

Bash 脚本监控 Linux 系统
https://jb123.cn/bash/8959.html

bash编写脚本:深入浅出的指南
https://jb123.cn/bash/7139.html

40 个 Bash 脚本解释器命令
https://jb123.cn/bash/16341.html

在 Xshell 中执行 Bash 脚本的全面指南
https://jb123.cn/bash/13897.html