如何解决警告“使用子shell以避免必须返回”

Cec*_*lia 2 bash cd subshell dockerfile

文件夹结构是这样的:

folder_01
??? folder_02???Dockerfile_02
??? folder_03???Dockerfile_03 & example.sh
Run Code Online (Sandbox Code Playgroud)

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

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

cd ..
cd ./folder_03
Run Code Online (Sandbox Code Playgroud)

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

Kam*_*Cuk 5

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

(
   cd ./folder_02
   docker build . -t image_name
)
(
   cd ./folder_03
   something else
)
Run Code Online (Sandbox Code Playgroud)

在我想保留环境的脚本中,我使用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
Run Code Online (Sandbox Code Playgroud)