通过 xargs 命令 运行 失败但手动 运行s
Command run via xargs fails but runs manually
我正在尝试创建一个将自动附加到我现有的 python docker 容器的命令,并尝试将一堆命令链接在一起。
docker ps | grep "mypythoncontainer" | awk '{print }' | xargs docker attach
如果我运行
docker ps | grep "mypythoncontainer" | awk '{print }' | xargs echo
我得到了一个 docker id 字符串,正如预期的那样。如果我执行 docker attach {id string}
(从正上方语句的 return 复制),它会起作用。但是当我 运行 顶部的完整命令时,我得到一个错误 (the input device is not a TTY
).
所以 docker ps | grep "mypythoncontainer" | awk '{print }' | xargs echo
会回显 abc
,但 docker ps | grep "mypythoncontainer" | awk '{print }' | xargs docker attach
会失败,而 docker attach abc
有效。不确定我不明白的 xargs 是什么。
尝试:
docker attach $(docker ps | grep "mypythoncontainer" | awk '{print }')
或更简单:
docker attach $(docker ps | awk '/mypythoncontainer/{print }')
Not sure what about xargs I don't understand.
运行:...| ... docker ...
将重定向 docker
的 标准输入 到 ... awk
的输出, xargs
已经阅读了。所以 docker abc
将 r
un with a broken (already closed) STDIN
,然后失败。
我正在尝试创建一个将自动附加到我现有的 python docker 容器的命令,并尝试将一堆命令链接在一起。
docker ps | grep "mypythoncontainer" | awk '{print }' | xargs docker attach
如果我运行
docker ps | grep "mypythoncontainer" | awk '{print }' | xargs echo
我得到了一个 docker id 字符串,正如预期的那样。如果我执行 docker attach {id string}
(从正上方语句的 return 复制),它会起作用。但是当我 运行 顶部的完整命令时,我得到一个错误 (the input device is not a TTY
).
所以 docker ps | grep "mypythoncontainer" | awk '{print }' | xargs echo
会回显 abc
,但 docker ps | grep "mypythoncontainer" | awk '{print }' | xargs docker attach
会失败,而 docker attach abc
有效。不确定我不明白的 xargs 是什么。
尝试:
docker attach $(docker ps | grep "mypythoncontainer" | awk '{print }')
或更简单:
docker attach $(docker ps | awk '/mypythoncontainer/{print }')
Not sure what about xargs I don't understand.
运行:...| ... docker ...
将重定向 docker
的 标准输入 到 ... awk
的输出, xargs
已经阅读了。所以 docker abc
将 r
un with a broken (already closed) STDIN
,然后失败。