怎么会出现以下情况,即$PATH直接从bash -c:
docker exec -i -t my_container bash -c "echo $PATH"
Run Code Online (Sandbox Code Playgroud)
返回$PATH与后面不同的值,即启动交互式 bash 会话并回显$PATH?
docker exec -i -t my_container bash
root@21e6d898c3c2:/# echo $PATH
Run Code Online (Sandbox Code Playgroud)
为了给这个问题提供一些上下文,我想在容器中运行一个命令,docker exec如果我开始一个交互式 bash 会话,这个命令在路径上,但如果我只是运行命令,则不是。
在这种情况下,使用可执行文件的完整路径不是解决方法,因为该命令依赖于其他环境变量,就像PATH在 bash 交互式会话中设置的一样,但如果我直接运行该命令则不会。