1

Я хочу написать скрипт bash, который создает несколько пользователей и базу данных.

  1. Сначала я хочу проверить, существует ли пользователь, поэтому я попытался

    sudo -u postgres psql -c 'SELECT 1 FROM pg_roles WHERE rolename=${VAR_USER}'
    

    Как получить возвращаемое значение, которое я могу проверить в if?

  2. Как проверить, существует ли база данных?

  3. Если postgres psql имеет ошибку, как мне остановить скрипт и вывести ошибку?

  4. Я пытаюсь создать новую переменную таким образом A='${b}_dml' но получаю ошибку.

1 ответ1

1

Может быть, попробуйте что-то вроде следующего в скрипте bash:

#!/bin/bash
set -e

read -p "Please enter the user name to search for: " VAR_USER

VALUE=$(psql -c "SELECT 1 FROM pg_roles WHERE rolename=${VAR_USER}")
echo "$VALUE"

«set -e» заставляет скрипт завершать работу при ошибке. Смотрите этот ответ и соответствующие записи для получения дополнительной информации. Он также (в моем тестировании с mysql, так как у меня не установлен postgres) отобразит ошибку, которая вызвала выход сценария.

Если вы используете что-то отличное от базы данных по умолчанию, обязательно укажите это имя базы данных где-нибудь / каким-либо образом в сценарии.

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