我在码头上运行postgreSQL。为了访问我运行的容器
winpty docker exec -it postgres_db bash现在我已经在docker容器中了,我运行它来访问postgres服务器中的用户'postgres‘
psql -U postgres然后我要做的就是创建一个数据库
create database test;我能按顺序在剧本里这样做吗?我想要这样的东西:
#!/bin/bash
winpty docker run -p 8005:5432 --name postgres_db -e POSTGRES_PASSWORD=password -d postgres
sleep 5
winpty docker exec -it postgres_db bash -c "psql -U postgres" [-c "create database test;"]如果im不在"psql -U postgres“中,则无法执行create数据库。显然,-c的最后一行“创建数据库测试”(Create)是错误的,只是让您理解我想要做的事情。
发布于 2021-11-03 11:41:04
winpty docker exec -it postgres_db bash -c "psql -U postgres -c 'CREATE DATABASE test;'"bash -c和psql -c都以一个shell字作为输入。单引号或双引号是一个单词。您需要嵌套引号,就像嵌套-c命令一样。
备选方案:
winpty docker exec -it postgres_db bash -c "psql -U postgres -c \"CREATE DATABASE test;\""https://stackoverflow.com/questions/69823516
复制相似问题