📅  最后修改于: 2023-12-03 14:59:30.006000             🧑  作者: Mango
在Shell脚本中,经常需要获取当前正在执行的脚本的路径。在Bash中,可以使用多种方法来实现这个目的。
在Bash脚本中,$0变量表示当前脚本的名称。可以结合dirname命令来获取脚本的路径。
#!/bin/bash
script_path=$(dirname "$0")
echo "脚本路径:$script_path"
上述脚本通过将$0变量传递给dirname命令,并将结果赋给script_path
变量来获取脚本的路径。
如果脚本中存在符号链接,以上方法可能无法返回真实的脚本路径。可以使用readlink命令来解决这个问题。
#!/bin/bash
# 获取脚本所在目录
script_location=$(readlink -f "$0")
# 获取脚本路径
script_path=$(dirname "$script_location")
echo "脚本路径:$script_path"
上述脚本利用readlink命令获取脚本的真实路径,并将结果传递给dirname命令来获取脚本的路径。
在Bash中,可以使用BASH_SOURCE变量来获取当前正在执行的脚本的路径。
#!/bin/bash
# 获取脚本路径
script_path=$(dirname "${BASH_SOURCE[0]}")
echo "脚本路径:$script_path"
以上脚本通过使用BASH_SOURCE变量和dirname命令来获取脚本的路径。
无论使用哪种方法,以上脚本都会输出当前正在执行的脚本的路径。根据实际需求选择适合的方法即可。