Странный персонаж в Docker Exec

Я пытаюсь создать скрипт для запуска докерного кластера.

В моем сценарии есть момент, когда я хочу скопировать некоторые файлы из докера на мою локальную машину. Итак, я создаю 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 переменная

1 ответ

Решение

Этот сценарий, который выполняет то, что я предполагаю, должен быть

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

возможно, был написан с помощью редактора, который хранит текстовые файлы с окончанием строки DOS (например, Notepad++).

Бежать dos2unix по этому сценарию, или используйте

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

починить это.

Другие вопросы по тегам