在 `docker exec` 中转义 $() 语法
Escape $() syntax in `docker exec`
我正在尝试 运行 一个以 $()
作为参数的命令(不知道那叫什么)应该在 Docker 容器中进行评估。例如:
docker exec mycontainer echo $(whoami)
执行此操作时,whoami
首先是主机上的 运行,因此插入主机的用户。相反,我希望在容器中评估 whoami
命令,以便回显容器的用户。
我发现很难找到这方面的帮助。我尝试过但无效的替代方案:
docker exec mycontainer 'echo $(whoami)'
docker exec mycontainer echo '$(whoami)'
docker exec mycontainer echo $$(whoami)
docker exec mycontainer echo $(whoami)
如何实现?
您可以传入一个带有参数的命令;但该单个命令可以是 sh
或 bash
.
docker exec mycontainer sh -c 'echo $(whoami)'
如果您需要在脚本片段中使用 Bash 语法(这实际上可以是任意复杂的;如果您需要在引号内使用单引号,可以使用几种常见的解决方法)那么显然使用 bash
而不是 sh
.
我正在尝试 运行 一个以 $()
作为参数的命令(不知道那叫什么)应该在 Docker 容器中进行评估。例如:
docker exec mycontainer echo $(whoami)
执行此操作时,whoami
首先是主机上的 运行,因此插入主机的用户。相反,我希望在容器中评估 whoami
命令,以便回显容器的用户。
我发现很难找到这方面的帮助。我尝试过但无效的替代方案:
docker exec mycontainer 'echo $(whoami)'
docker exec mycontainer echo '$(whoami)'
docker exec mycontainer echo $$(whoami)
docker exec mycontainer echo $(whoami)
如何实现?
您可以传入一个带有参数的命令;但该单个命令可以是 sh
或 bash
.
docker exec mycontainer sh -c 'echo $(whoami)'
如果您需要在脚本片段中使用 Bash 语法(这实际上可以是任意复杂的;如果您需要在引号内使用单引号,可以使用几种常见的解决方法)那么显然使用 bash
而不是 sh
.