我想编写一个创建多个用户和一个数据库的 bash 脚本。
首先我想检查用户是否存在,所以我尝试
sudo -u postgres psql -c 'SELECT 1 FROM pg_roles WHERE rolename=${VAR_USER}'
我如何获取可在 a 中检查的返回值
if
?我如何检查数据库是否存在?
如果 postgres
psql
出现错误,我该如何停止脚本并回显错误?我尝试以这种方式创建一个新变量
A='${b}_dml'
,但出现错误。
答案1
也许可以在 Bash 脚本中尝试如下操作:
#!/bin/bash
set -e
read -p "Please enter the user name to search for: " VAR_USER
VALUE=$(psql -c "SELECT 1 FROM pg_roles WHERE rolename=${VAR_USER}")
echo "$VALUE"
“set -e” 会导致脚本在出错时退出。请参见这答案和相关条目以获取更多信息。它还将(在我使用 mysql 进行的测试中,因为我没有安装 postgres)显示导致脚本退出的错误。
如果使用默认数据库以外的其他数据库,请确保在脚本中的某处/以某种方式指定该数据库名称。