createuser允许在Postgresql中创建用户(ROLE)。有一个简单的方法来检查,如果该用户(名称)已经存在吗?否则createuser返回错误:
createuser: creation of new role Failed: ERROR: role "USR_NAME" already exists
SELECT 1 FROM pg_roles WHERE rolname='USR_NAME'
而在命令行方面(感谢Erwin):
psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='USR_NAME'"
产生1,如果发现和没有别的。
那是:
psql postgres -tAc "SELECT 1 FROM pg_roles WHERE rolname='USR_NAME'" | grep -q 1 || createuser ...