Linux Unix:bash脚本调用脚本和相对路径

Linux Unix:bash脚本调用脚本和相对路径,linux,bash,shell,unix,docker,Linux,Bash,Shell,Unix,Docker,我有以下目录结构 . |_build.sh |_dir |_build.sh |_Dockerfile 下面是更高级别build.sh的内容 #!/bin/bash ./dir/build.sh #!/bin/bash docker build -t test . 下面是底层build.sh的内容 #!/bin/bash ./dir/build.sh #!/bin/bash docker build -t test . 但是,当我运行upper level build.sh时,

我有以下目录结构

.
|_build.sh
|_dir
  |_build.sh
  |_Dockerfile
下面是更高级别build.sh的内容

#!/bin/bash
./dir/build.sh
#!/bin/bash
docker build -t test .
下面是底层build.sh的内容

#!/bin/bash
./dir/build.sh
#!/bin/bash
docker build -t test .
但是,当我运行upper level build.sh时,我得到以下错误

unable to prepare context: unable to evaluate symlinks in Dockerfile path: GetFi
leAttributesEx C:\Dockerfile: The system cannot find the fil
e specified.

如何保留相对于被调用脚本位置的相对路径?

方法略有不同,但可能有效。在您的顶级build.sh中:

#!/bin/bash
cd ./dir
docker build -t test .