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