奇怪的字符 docker exec

Strange character docker exec

我正在尝试为 运行 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

pwddocker exec 命令正在返回返回字符。

有一种方法可以从 CONTAINER_WORKDIR 变量中删除这个字符

这个执行我推测的脚本必须是

CONTAINER_WORKDIR=$(docker exec -it jmeter-master /bin/pwd)

可能是使用编辑器编写的,该编辑器存储带有 DOS 行尾的文本文件(如 Notepad++)。

运行 dos2unix 在该脚本上,或使用

$ tr -d '\r' <script >script-new

修复它。