我在目录中有一个shell程序(即dir1 / dothis.sh) - 当我cd到该目录并且./dothis.sh
时工作正常如果我使用新名称创建一个ln到该directoy - dir2并执行dir2 / dothis.sh 它会执行,但它认为当前的执行路径是dir2指向
的新目录 在dothis.sh中的- 如何找到dothis.sh实际所在的位置?我的问题是dir1 / dothis.sh可以从一个系统重新定位到系统,所以没有保证dir1 / dothis.sh可以是硬代码
答案 0 :(得分:1)
使用内置的bash
#!/bin/bash
echo "Current path: $PWD"
答案 1 :(得分:0)
试试这个:
#!/bin/bash
echo $0
a=`pwd`
echo $a
b=$a"/"$0
echo `dirname $b`
答案 2 :(得分:0)
怎么样
dirname $(readlink -f $0)
如果有的话,它也会解析符号链接......