psql
我在 Bash 脚本中使用(PostgreSQL)命令:
function create_database () {
sudo -u postgres psql -c "CREATE DATABASE $1 WITH OWNER $2;" 2>ERROR
if [[ $? -ne 0]; then
echo "error -> $ERROR"
return 1
else:
....
return 0
}
我试图捕获error
并将其传递给变量,但变量为空。
答案1
2>ERROR
将输出发送stderr
到名为 的文件ERROR
,而不是变量。请尝试以下操作:
ERROR=$(sudo -u postgres psql -c "CREATE DATABASE $1 WITH OWNER $2;" 2>&1 1>/dev/null)