📜  获取脚本目录 bash - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:27:51.521000             🧑  作者: Mango

获取脚本目录 bash

当我们在编写Shell脚本时,经常需要获取当前脚本所在的目录。如何在Bash中获取脚本目录呢?下面介绍几种方法。

方法一:使用$0和dirname命令
#!/bin/bash
# 获取当前脚本所在目录
dir=$(dirname "$0")
echo "$dir"

解释:$0 表示当前脚本的文件名,dirname 命令用于去掉文件名,只返回目录路径。

方法二:使用readlink和dirname命令
#!/bin/bash
# 获取当前脚本所在目录
dir=$(cd $(dirname $(readlink -f "$0")) && pwd)
echo "$dir"

解释:readlink -f "$0" 用来获取当前脚本的绝对路径,dirname 命令用于去掉文件名,cd 命令进入到目录,pwd 命令输出当前工作目录的路径。

方法三:使用BASH_SOURCE和dirname命令
#!/bin/bash
# 获取当前脚本所在目录
dir=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)
echo "$dir"

解释:${BASH_SOURCE[0]} 表示当前正在执行的脚本文件的文件名,dirname 命令用于去掉文件名,cd 命令进入到目录,pwd 命令输出当前工作目录的路径。

以上是三种常见的获取脚本目录的方法,可以根据实际情况选择合适的方法来使用。