-1

我在一个目录(即 dir1/dothis.sh)中有一个 shell 程序 - 当我 cd 到该目录和 ./dothis.sh 时工作正常

如果我使用新名称为该目录创建了一个 ln - dir2 并执行 dir2/dothis.sh 它会执行,但它认为当前执行路径是 dir2 指向的新目录

在 dothis.sh - 我如何找到 dothis.sh 的实际位置?我遇到的问题是 dir1/dothis.sh 可以从一个系统重新定位到另一个系统,因此无法保证 dir1/dothis.sh 可以是硬代码

4

3 回答 3

1

使用 bash 内置

#!/bin/bash
echo "Current path: $PWD"
于 2013-01-24T03:26:29.657 回答
0

怎么样

dirname $(readlink -f $0)

如果有的话,它也将解析符号链接......

于 2013-01-24T09:16:59.297 回答
0

尝试这个:

#!/bin/bash
echo $0
a=`pwd`
echo $a
b=$a"/"$0
echo `dirname $b`
于 2013-01-24T03:16:29.093 回答