Перехват ошибки команды bash в переменной
Я использую 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 ответ
Решение
2>ERROR
отправляет stderr
вывод в файл с именем ERROR
, а не к переменной. Попробуйте следующее:
ERROR=$(sudo -u postgres psql -c "CREATE DATABASE $1 WITH OWNER $2;" 2>&1 1>/dev/null)