如何解决警告 ''using a subshell to avoid having to cd back'

how to resolve warning ''using a subshell to avoid having to cd back'

文件夹结构如下:

folder_01
├── folder_02├──Dockerfile_02
├── folder_03├──Dockerfile_03 & example.sh

在 example.sh 脚本中,我想使用 cd 导航回 folder_02 并使用 dockerfile_02 构建图像,然后导航回当前目录(folder_03) 这是我尝试过的:

cd ..
cd ./folder_02
docker build . -t image_name

cd ..
cd ./folder_03

在 intelliJ 中,它给了我警告 using a subshell to avoid having to cd back,我阅读了一些关于它的文档但没有找到解决方案,有人可以帮助我吗?

您可以在子 shell 中调用命令 (...):

(
   cd ./folder_02
   docker build . -t image_name
)
(
   cd ./folder_03
   something else
)

在我想要保护环境的脚本中,我使用 pushd+popd

pushd ./folder_02 >/dev/null
docker build . -t image_name
popd >/dev/null

pushd ./folder_03 >/dev/null
something soemthing
popd >/dev/null

你可以像@KamilCuk 所说的那样使用 subshel​​l (...)

(cd ../folder_02 && docker build . -t image_name )
(cd ../folder_03 && something else)

(cd ../folder_02; docker build . -t image_name )
(cd ../folder_03; something else)

由于 Docker,您可以使用 -f 参数 select 要使用的 Docker 文件:

docker build -t path/yourproject -f dockerfiles/myownDocker.docker .