gpt4 book ai didi

Bash 命令作为 Bash 命令参数

转载 作者:行者123 更新时间:2023-12-04 18:30:04 25 4
gpt4 key购买 nike

我有一个守护进程的 Docker 容器。我可以以该容器中的当前用户的身份一次性执行多个 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 exec 得到的是 /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。

最佳答案

$@ 周围使用引号:

docker exec -it <container_ID> -user $(id -u):$(id -g) "$@"

关于Bash 命令作为 Bash 命令参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41118914/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com