2014-09-29 44 views
0

我想創建這個小腳本,基本上重新創建我每次使用的步驟,我開始一個新的ubuntu機器並在其上安裝一些python項目。腳本停止。當我切換到postgres用戶時。它從來沒有運行psql命令爲什麼我的shell腳本在更改用戶後退出?

pip install --upgrade pip 
sudo pip install virtualenv 
useradd -m -p $2 $1 
sudo -i -u postgres 
psql -c "CREATE DATABASE $1;" 
psql -c "CREATE USER $1 WITH PASSWORD '$2';" 
psql -c "GRANT ALL PRIVILEGES ON DATABASE $1 to $1;" 

我大概吸慶典的腳本,我試圖變得更好。

回答

2

當您運行

sudo -i -u postgres 

一個殼催生了命令。如果此時鍵入exit,則此新外殼將退出,並且原始外殼將繼續運行psql命令(但不是postgres用戶)。

您可以執行以下操作來解決這個問題:

sudo -u postgres psql -c "CREATE DATABASE $1;" 
sudo -u postgres psql -c "CREATE USER $1 WITH PASSWORD '$2';" 
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE $1 to $1;" 
相關問題