将PostgreSQL通知重定向到Bash数组

将PostgreSQL通知重定向到Bash数组,bash,postgresql,Bash,Postgresql,我有一个引起注意的PostgreSQL语句。我希望将此输出重定向到bash数组中。我尝试了以下方法: declare -a MYARRAY MYARRAY=( `psql -U $db_username -h $DATABASE_HOST $DATABASE_NAME -c \ "DO \\$\\$ DECLARE mySite varchar; myResult RECORD; BEGIN RAISE NOTICE 'current_site, folder, path';

我有一个引起注意的PostgreSQL语句。我希望将此输出重定向到bash数组中。我尝试了以下方法:

declare -a MYARRAY
MYARRAY=( `psql -U $db_username -h $DATABASE_HOST $DATABASE_NAME -c \
"DO \\$\\$ DECLARE
mySite varchar;
myResult RECORD;

BEGIN
    RAISE NOTICE 'current_site, folder, path'; 
    FOR mySite IN SELECT name from public.app_info
    LOOP
        {Confidential Data here!}
    LOOP
        RAISE NOTICE '%,%,%', myResult.current_site, myResult.folder, myResult.path;
    END LOOP;
  END LOOP;
END\\$\\$"` )

echo "These are the files"
for i in ${MYARRAY[@]}; do
        echo $i
done

当我运行脚本时,查询中的通知会打印到我的窗口,但不会添加到数组中。我也用一个变量而不是数组尝试了这个方法,但运气不好。

通知会打印到stderr中,所以请更改
END\\\\$”`
to
END\\\\\\$“2>&1`)

但数组中也会包含通知这样的文本,所以你必须过滤掉它们。谢谢