我正在尝试运行教程中的以下命令:
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"