Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash查找当前执行的位置_Bash_Shell_Unix - Fatal编程技术网

Bash查找当前执行的位置

Bash查找当前执行的位置,bash,shell,unix,Bash,Shell,Unix,我在一个目录(即dir1/dothis.sh)中有一个shell程序——当我将cd刻录到该目录和./dothis.sh时,该程序运行良好 如果我用一个新名字为那个导演创建了一个ln-dir2和do dir2/dothis.sh 它将执行,但它认为当前的执行路径是dir2指向的新dir 在dothis.sh中-如何找到dothis.sh的实际位置?我遇到的问题是dir1/dothis.sh可以从一个系统重新定位到另一个系统,因此无法保证dir1/dothis.sh可以是硬代码 #!/bin/bas

我在一个目录(即dir1/dothis.sh)中有一个shell程序——当我将cd刻录到该目录和./dothis.sh时,该程序运行良好

如果我用一个新名字为那个导演创建了一个ln-dir2和do dir2/dothis.sh 它将执行,但它认为当前的执行路径是dir2指向的新dir

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

#!/bin/bash
echo $0
a=`pwd`
echo $a
b=$a"/"$0
echo `dirname $b`
使用bash内置的

#!/bin/bash
echo "Current path: $PWD"
怎么样

dirname $(readlink -f $0)

它还将解析符号链接(如果有的话)…

请向我们展示您的代码,以及您迄今为止的尝试。