Похожие вопросы

Putty: войдите в систему, выполните команду / измените переменную среды и не закрывайте сеанс
Заменить обратный слеш("") с косой черты("/") в переменную в bash
пример cURL для доступа к аутентифицированному API Kraken
Добавить псевдоним.mylongwebsiteaddress в конец строки в cygwin
Изменение атрибутов всех целевых символических ссылок в каталоге
Mac терминала показывая Баш вместо моего логина
терминал iTerm/OSX: изменение поля текста от края окна
Запустить скрипт после входа в систему в Linux
Windows 10 Bash не работает
Bash: получение сообщений от фонового процесса
Проблемы при выполнении perl на git для Windows bash
Можете ли вы префикс каждой строки, написанной с tee с текущей датой и временем?
Как изменить цвет конкретного типа файла в оболочке bash в linux?
Запуск devcon.exe правильно (включение / выключение устройства из командной строки в Windows 10)
Incron не выполнять скрипт, но хрон будет, отказано

Перехват ошибки команды bash в переменной

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

function create_database () {
       sudo -u postgres psql -c "CREATE DATABASE  WITH OWNER ;" 2>ERROR
        if [[ $? -ne 0]; then
          echo "error -> $ERROR"
          return 1
        else:
         ....
         return 0
}

Я пытаюсь поймать error и передаем его переменной, но переменная пуста.

5
задан user3541631
источник

1 ответов

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

ERROR=$(sudo -u postgres psql -c "CREATE DATABASE  WITH OWNER ;" 2>&1 1>/dev/null)
3
отвечен md2perpe 2018-09-15 11:54:07
источник

Другие вопросы bash bash-scripting postgresql