스크립트 셸의 Postgres

스크립트 셸의 Postgres

안녕하세요, 소유자와 함께 데이터베이스를 생성하려고 합니다! 기본적으로 소유자는 postgres이며 사용자가 데이터베이스를 생성할 때 이를 변경하고 싶습니다.

read -p "Enter owner database name : " $owner
read -p "Enter database name : " $my_db
sudo -i -u postgres psql -c 'CREATE DATABASE $my_db OWNER $owner'

이 줄을 테스트했지만 데이터베이스 이름이 "owner"로 생성되었습니다.

누구든지 나를 도와줄 수 있나요? ?

답변1

귀하의 코드 조각에 두 가지 문제가 있습니다.

  1. $owner존재하다

    read -p "Enter owner database name : " $owner
    

    확장하다변수 owner여야 합니다.

    read -p "Enter owner database name : " owner
    

    아니요 $;$my_db

  2. 작은따옴표

    sudo -i -u postgres psql -c 'CREATE DATABASE $my_db OWNER $owner'
    

    $my_db및 의 확장을 방지합니다 $owner. 그것은해야한다

    sudo -i -u postgres psql -c "CREATE DATABASE $my_db OWNER $owner"
    

    (작은따옴표 대신 큰따옴표를 사용하는 것에 유의하세요) 전체 설명은 다음에서 확인할 수 있습니다.셸에서 "...", '...', $'...' 및 $"..." 따옴표의 차이점은 무엇입니까?

관련 정보