📜  bash 获取脚本的路径 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 14:59:30.006000             🧑  作者: Mango

获取脚本的路径

在Shell脚本中,经常需要获取当前正在执行的脚本的路径。在Bash中,可以使用多种方法来实现这个目的。

方法一:使用$0变量和dirname命令

在Bash脚本中,$0变量表示当前脚本的名称。可以结合dirname命令来获取脚本的路径。

#!/bin/bash

script_path=$(dirname "$0")
echo "脚本路径:$script_path"

上述脚本通过将$0变量传递给dirname命令,并将结果赋给script_path变量来获取脚本的路径。

方法二:使用readlink命令

如果脚本中存在符号链接,以上方法可能无法返回真实的脚本路径。可以使用readlink命令来解决这个问题。

#!/bin/bash

# 获取脚本所在目录
script_location=$(readlink -f "$0")
# 获取脚本路径
script_path=$(dirname "$script_location")
echo "脚本路径:$script_path"

上述脚本利用readlink命令获取脚本的真实路径,并将结果传递给dirname命令来获取脚本的路径。

方法三:使用BASH_SOURCE变量

在Bash中,可以使用BASH_SOURCE变量来获取当前正在执行的脚本的路径。

#!/bin/bash

# 获取脚本路径
script_path=$(dirname "${BASH_SOURCE[0]}")
echo "脚本路径:$script_path"

以上脚本通过使用BASH_SOURCE变量和dirname命令来获取脚本的路径。

总结

无论使用哪种方法,以上脚本都会输出当前正在执行的脚本的路径。根据实际需求选择适合的方法即可。