我在 docker 上運行 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;"]
如果我不在“psql -U postgres”中,則無法執行創建數據庫。顯然最後一行-c "create database test;" 是錯的,只是為了讓你明白我想做什麼。
winpty docker exec -it postgres_db bash -c "psql -U postgres -c 'CREATE DATABASE test;'"
雙方bash -c
並psql -c
採取一個外殼字作為輸入。單引號或雙引號字符串是一個單詞。您需要嵌套引號,就像-c
嵌套命令一樣。
選擇:
winpty docker exec -it postgres_db bash -c "psql -U postgres -c \"CREATE DATABASE test;\""
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句