将 PostgreSQL 通知重定向到 Bash 数组



我有一个 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\$\$"` )END\$\$" 2>&1` )但数组还将包含诸如 注意: 和 DO 这样的文本,因此您必须过滤掉它们

最新更新