Я использую команду psql(PostgreSQL) в скрипте bash:

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 ответ1

3

2>ERROR отправляет вывод stderr в файл с именем ERROR , а не в переменную. Попробуйте следующее:

ERROR=$(sudo -u postgres psql -c "CREATE DATABASE $1 WITH OWNER $2;" 2>&1 1>/dev/null)

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .