튜토리얼에서 다음 명령을 실행하려고 합니다.
docker run --rm -v $(pwd):/check --network des mongo:4.2 bash -c \
"mongorestore -hmongo -u moAdmin -p <PWD> --gzip --archive=/check/test.gz --nsInclude='test.*' --drop"
문제는 비밀번호에 포함되어 있다는 것입니다! 및 | 사용된 큰따옴표 내에서 이를 올바르게 이스케이프하는 방법을 잘 모르겠습니다.
당신의 도움을 주셔서 감사합니다!
답변1
기록 확장을 일시적으로 끌 수 있습니다.
set +H
docker run --rm -v $(pwd):/check --network des mongo:4.2 bash -c \
"mongorestore -hmongo -u moAdmin -p <PWD> --gzip --archive=/check/test.gz --nsInclude='test.*' --drop"
set -H
또는 역할을 직접 이스케이프할 수 있습니다.
docker run --rm -v $(pwd):/check --network des mongo:4.2 bash -c \
"mongorestore -hmongo -u moAdmin -p P@assword\! --gzip --archive=/check/test.gz --nsInclude='test.*' --drop"
변수에 저장할 수 있습니다.
password='P@ssword!'
docker run --rm -v $(pwd):/check --network des mongo:4.2 bash -c \
"mongorestore -hmongo -u moAdmin -p \"$password\" --gzip --archive=/check/test.gz --nsInclude='test.*' --drop"