Captura de um erro de comando bash em uma variável

0

Estou usando o comando psql (PostgreSQL) em um script 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
}

Estou tentando capturar o error e passá-lo para uma variável, mas a variável está vazia.

    
por user3541631 15.09.2018 / 13:14

1 resposta

3

2>ERROR envia a saída stderr para um arquivo chamado ERROR , não para uma variável. Tente o seguinte:

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