如果通过相对路径在脚本内调用,会调用哪个可执行文件?

如果通过相对路径在脚本内调用,会调用哪个可执行文件?

假设我有这个mm脚本dir1

#Contents of mm
echo "Hello Main!"
./hd

我的密码是dir2,我现在执行mm

$ ../dir1/mm

有一个名为hddir1的可执行文件dir2。我尝试了一下,hdindir2被执行了。为什么不执行hdindir1呢?

答案1

因为执行文件不会将进程的当前工作目录更改为文件的目录。

可执行文件可以在执行后选择执行。例如,我有时会这样做:

cd "$(dirname "$0")" 

在我的脚本中确保我当前的工作目录是可执行文件的目录,但它没有义务这样做。

相关内容