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

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

获取脚本目录的方法

在编写脚本时,我们有时需要获取脚本所在的目录。这可以通过几种不同的方式实现,下面介绍两种常用的方法。

方法一:使用dirname命令

在bash脚本中,可以使用dirname命令获取脚本所在的目录,具体语法如下:

#!/bin/bash

dir=$(dirname "$0")
echo "脚本所在目录为:${dir}"

在上面的代码中,$0代表脚本本身,dirname命令将其解析为脚本所在的目录,并将结果赋给变量dir。最后输出获取到的目录。

使用这种方法的优点是简单方便,缺点是有可能会出现一些问题,比如脚本被软链接过、脚本所在的目录路径中有空格等。

方法二:使用readlink命令

另一种获取脚本所在目录的方法是使用readlink命令,具体语法如下:

#!/bin/bash

dir=$(cd "$(dirname "$(readlink -f "$0")")" && pwd)
echo "脚本所在目录为:${dir}"

在上面的代码中,readlink命令用于获取脚本的真实路径,并将其传递给dirname命令获取脚本所在的目录。然后使用cd命令进入该目录,再使用pwd命令获取当前目录的绝对路径,并将其赋给变量dir。最后输出获取到的目录。

使用这种方法的优点是比较稳定,可以避免一些问题。缺点是代码比较复杂,不够直观。

综上所述,这两种方法各有利弊,具体可以根据实际情况选择使用。