Я новичок в сценариях bash и postgresql.
В другом вопросе я видел способ запуска сценария bash от имени psql пользователь здесь .
Я попытался сделать функцию bash следующим образом:
postgres_create_db(){
sudo su postgres <<- EOF
if psql -lqt | cut -d \| -f 1 | grep -qw nokia_aaa_poc_db; then
psql -c '\dt'
else
psql -c 'CREATE DATABASE nokia_AAA_poc_db;'
fi
EOF
exit
}
, где эта функция будет вызываться далее в коде, но мне интересно, могу ли я добавить RETURN к функции это фактически возвращает переменную, которая была впервые объявлена внутри postgres bash (между EOF). Как показано ниже:
postgres_create_db(){
sudo su postgres <<- EOF
if psql -lqt | cut -d \| -f 1 | grep -qw nokia_aaa_poc_db; then
psql -c '\dt'
exists=1 #where thats a variable that I want to access outside the postgres bash.
else
psql -c 'CREATE DATABASE nokia_AAA_poc_db;'
fi
EOF
exit
return exists
}
но выдает ошибку при проверке оболочки
return exists
^-- SC2152: Can only return 0-255. Other data should be written to stdout.