我有一个去码头的集装箱。作为容器中的当前用户,我可以一次执行多个bash命令,如下所示:
docker exec -it <container_ID> /bin/bash -c "pwd; cd src; pwd"我现在需要通过bash脚本来完成这个任务。脚本很简单:
#!/usr/bin/env bash
# Here I do stuff to acquire the container_ID
docker exec -it <container_ID> -user $(id -u):$(id -g) $@然后我将参数传递给脚本,如下所示:
./run_in_container.sh /bin/bash -c "pwd; cd src; pwd"这不像预期的那样工作,因为引号被去掉了,而docker得到的是/bin/bash -c pwd; cd src; pwd。因此,我尝试以下几点:
./run_in_container.sh /bin/bash -c '"pwd; cd src; pwd"'我得到了一条错误信息:
cd: -c: line 0: unexpected EOF while looking for matching `"'
cd: -c: line 1: syntax error: unexpected end of file这样做的正确方法是什么?
在本例中,我怀疑这是非常重要的信息,但我使用的是Gnu bash 4.3.11。
发布于 2016-12-13 10:41:48
在$@周围使用引号
docker exec -it <container_ID> -user $(id -u):$(id -g) "$@"https://stackoverflow.com/questions/41118914
复制相似问题