bashshellubuntudockerdocker-exec

Strange character docker exec


I'm trying to create a script to run a docker cluster.

In my script there is a moment that I want to copy some files from the docker to my local machine. So I'm creating the CONTAINER_WORKDIR variable.

CONTAINER_WORKDIR=`docker exec -it jmeter-master /bin/pwd`

The value stored in CONTAINER_WORKDIR is:

/usr/local/apache-jmeter-3.2/bin

The problem is that there is a strange character in the end of this variable. Try to execute the line below:

echo "docker cp jmeter-master:$CONTAINER_WORKDIR/output.csv ."

My expected result is

docker cp jmeter-master:/usr/local/apache-jmeter-3.2/bin/output.csv .

But the real output is:

/output.csv .ter-master:/usr/local/apache-jmeter-3.2/bin

The pwd or the docker exec command is returning a returning character.

There is a way to remove this character from CONTAINER_WORKDIR variable


Solution

  • This script that executes what I presume must be

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

    may have been written with an editor that stores text files with DOS line-endings (like Notepad++).

    Run dos2unix on that script, or use

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

    to fix it.