我正在尝试运行一个命令,其中$()
作为参数(不确定是什么叫)应该在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)
如何实现这一目标?
答案 0 :(得分:6)
您可以使用参数传入单个命令;但该单个命令可以是sh
或bash
。
docker exec mycontainer sh -c 'echo $(whoami)'
如果你需要在脚本片段中使用Bash语法(这实际上可以是任意复杂的;如果你需要引号内的单引号,可以使用几种常见的解决方法)那么显然使用bash
代替{{1 }}