bash - 奇怪的字符 docker exec

标签 bash shell ubuntu docker 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

要解决这个问题。

关于bash - 奇怪的字符 docker exec,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46121207/

相关文章:

python - 在同一个端口运行的两个 jupyter notebook

python - 无法使用 Ubuntu 导入 python-numpy

linux - 将关联数组作为 Bash 的参数传递

bash - shell中的嵌套逻辑表达式测试

bash - 如何指定 Bourne shell(不是 sh)

php - 是否可以运行 PHP exec() 但从进程列表中隐藏参数?

ubuntu - 如何避免/加速在 Travis CI 上手动构建 pandoc?

bash - 如何删除文件中除第一个匹配行之外的重复行

javascript - 如何让这个服务器进程永远运行呢?

linux - Bash:如何输出 ls -la 的 "grep"匹配文件所有者和文件权限?