Linux下bash脚本获取脚本路径153


在bash脚本中,获取脚本路径是一项常见需求,例如需要写入日志文件、加载配置文件或执行其他操作时。本文将介绍几种常用的方法来获取bash脚本路径。

1. $0 变量

$0 变量保存着当前正在执行的脚本的绝对路径。这是获取脚本路径最简单的方法:```bash
#!/bin/bash
echo $0
```

2. readlink /proc/$$/exe

readlink命令可以读取符号链接的实际目标。/proc/$$/exe是一个指向当前正在执行的进程的可执行文件的符号链接,因此我们可以使用它来获取脚本路径:```bash
#!/bin/bash
SCRIPT_PATH=$(readlink -f /proc/$$/exe)
echo $SCRIPT_PATH
```

3. dirname $0

dirname命令可以获取文件的目录部分。结合$0变量,我们可以获得脚本所在目录的路径:```bash
#!/bin/bash
SCRIPT_DIR=$(dirname $0)
echo $SCRIPT_DIR
```

4. which命令

which命令可以查找可执行文件的路径。对于脚本,which会返回脚本的绝对路径:```bash
#!/bin/bash
SCRIPT_PATH=$(which $0)
echo $SCRIPT_PATH
```

5. BASH_SOURCE数组

BASH_SOURCE数组包含当前正在执行的脚本的路径。数组的第一个元素是当前脚本的路径,第二个元素是调用当前脚本的脚本的路径,依此类推:```bash
#!/bin/bash
SCRIPT_PATH=${BASH_SOURCE[0]}
echo $SCRIPT_PATH
```

6. 内置pwd命令

pwd命令可以获取当前工作目录的路径。如果脚本是在当前工作目录执行的,我们可以使用pwd来获取脚本路径:```bash
#!/bin/bash
SCRIPT_PATH=$(pwd)
echo $SCRIPT_PATH
```

7. cd命令

cd命令可以改变当前工作目录。我们可以使用cd命令进入脚本目录,然后使用pwd命令获取脚本路径:```bash
#!/bin/bash
cd $(dirname $0)
SCRIPT_PATH=$(pwd)
echo $SCRIPT_PATH
```

根据不同的需求,可以选择最合适的方法来获取bash脚本路径。需要注意的是,以上方法在不同的操作系统和bash版本中可能略有差异,请根据实际情况进行调整。

2024-12-09


上一篇:Bash 中计算脚本

下一篇:Linux 编辑 Bash 脚本:详细指南