Linux中的绝对和相对路径

时间:2015-10-19 10:04:44

标签: linux shell

我正在编写一个运行pwd命令的shell脚本,并将其输出用于脚本执行的其他一些任务。当我转到特定目录并运行它时,脚本工作正常。但是当我尝试通过提供脚本的完整路径从其他位置运行脚本时,我没有得到所需的输出,因为pwd命令给出了当前目录的路径。我该如何解决这个问题?无论我从何处运行脚本,我怎样才能写出正确的东西?
当我使用..到达上一个目录时,正面临同样的问题。我希望脚本根据其位置而不是运行脚本的路径获取路径。如果还有其他一些细节,请告诉我。

1 个答案:

答案 0 :(得分:0)

您可以使用$0提取脚本,然后将其与pwd

结合使用
$ cat abc.sh
echo $0

DIR1=$(dirname `pwd`/$0)
echo $DIR1

DIR2="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo $DIR2

在所有情况下还有其他方法可以实现它: