在bash中为postgresql生成随机密码

Jim*_*mmy 3 linux postgresql bash shell debian

我正在尝试安装 postgresql 并在部署时为其生成随机密码,仅供测试之用。像这样的东西:

$DBPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
sudo -u postgres -H createuser --no-createrole --no-superuser --no-createdb $NAME
sudo -u postgres -H createdb -O $PROJECT $PROJECT
sudo -u postgres -H psql -c "alter user $PROJECT with password '$DBPASS'"
Run Code Online (Sandbox Code Playgroud)

我得到的错误是这样的:

=b3wDxlSbUymho0CmOZ4TgPylLCanKdgJ:未找到命令 /usr/lib/postgresql/9.1/bin/createdb:选项需要参数 -- 'O' 尝试“createdb --help”以获取更多信息。
错误:“使用密码”
第 1 行或附近存在语法错误:使用密码“更改用户”

任何人都可以解释为什么会发生这种情况吗?

Jos*_*lly 5

您的第一行需要更改(变量分配不应有美元符号):

DBPASS=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 32 | head -n 1)
Run Code Online (Sandbox Code Playgroud)

该错误还表明$PROJECT未设置 - 如果echo "$PROJECT - $DBPASS"在第一行之后添加,您会得到什么?