我在 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;" 是錯的,只是為了讓你明白我想做什么。
uj5u.com熱心網友回復:
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;\""
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/346495.html
標籤:PostgreSQL 猛击 执行
下一篇:Bash評估順序
