如何在 Bash 中获取当前脚本执行的路径70


在 Bash 脚本中,获取当前脚本执行的路径是一个常见的操作。这对于需要操作与脚本相关的文件或资源时非常有用。

方法 1:使用 $0 变量

最简单的方法是使用 $0 变量。它包含当前正在执行的脚本的绝对路径。```bash
#!/bin/bash
echo "当前脚本路径:$0"
```

输出:```
当前脚本路径:/path/to/
```

方法 2:使用 readlink -f

readlink -f 命令可用于获取文件的绝对路径,包括符号链接。这可以解决 $0 变量在处理符号链接时出现的问题。```bash
#!/bin/bash
echo "当前脚本路径:$(readlink -f "$0")"
```

输出:```
当前脚本路径:/path/to/real/
```

方法 3:使用 dirname 和 pwd

dirname 命令可用于获取文件的目录,而 pwd 命令可用于获取当前工作目录。这两种命令可以结合使用来获取脚本的绝对路径。```bash
#!/bin/bash
echo "当前脚本路径:$(dirname "$0")/$(basename "$0")"
```

输出:```
当前脚本路径:/path/to/
```

方法 4:使用 BASH_SOURCE 数组

Bash 数组 BASH_SOURCE 包含当前脚本执行的源文件列表。第一个元素是当前脚本的绝对路径。```bash
#!/bin/bash
echo "当前脚本路径:${BASH_SOURCE[0]}"
```

输出:```
当前脚本路径:/path/to/
```

方法 5:使用 /proc/$PID/cwd

在 Linux 系统中,每个进程都有一个 /proc/$PID/cwd 文件,其中包含进程当前工作目录的符号链接。这可以用来获取脚本的绝对路径。```bash
#!/bin/bash
echo "当前脚本路径:$(readlink -f /proc/$PPID/cwd)"
```

输出:```
当前脚本路径:/path/to/
```

在 Bash 脚本中获取当前脚本执行的路径有多种方法。根据具体情况,可以根据需要选择适当的方法。

2024-12-24


上一篇:bash 脚本编写的最佳编辑器

下一篇:在命令行中使用 bash 脚本参数