我正在尝试创建一个脚本来运行 docker 集群。
在我的脚本中,有一段时间我想将一些文件从 docker 复制到我的本地机器。所以我正在创建 CONTAINER_WORKDIR
多变的。
CONTAINER_WORKDIR=`docker exec -it jmeter-master /bin/pwd`
CONTAINER_WORKDIR
中存储的值是:/usr/local/apache-jmeter-3.2/bin
问题是这个变量的末尾有一个奇怪的字符。尝试执行以下行:
echo "docker cp jmeter-master:$CONTAINER_WORKDIR/output.csv ."
我的预期结果是
docker cp jmeter-master:/usr/local/apache-jmeter-3.2/bin/output.csv .
但真正的输出是:
/output.csv .ter-master:/usr/local/apache-jmeter-3.2/bin
pwd
或 docker exec
命令正在返回一个返回字符。有一种方法可以从
CONTAINER_WORKDIR
中删除此字符多变的
最佳答案
这个执行我认为的脚本必须是
CONTAINER_WORKDIR=$(docker exec -it jmeter-master /bin/pwd)
可能是使用存储带有 DOS 行尾的文本文件的编辑器(如 Notepad++)编写的。
运行
dos2unix
在该脚本上,或使用$ tr -d '\r' <script >script-new
要解决这个问题。
关于bash - 奇怪的字符 docker exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46121207/