Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t9pn1-00CRrc-Ea for pgsql-general@arkaria.postgresql.org; Sat, 09 Nov 2024 18:02:26 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t9pmw-003HHf-Rs for pgsql-general@arkaria.postgresql.org; Sat, 09 Nov 2024 18:02:23 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t9pmw-003HFT-9I for pgsql-general@lists.postgresql.org; Sat, 09 Nov 2024 18:02:23 +0000 Received: from sonic306-21.consmr.mail.ne1.yahoo.com ([66.163.189.83]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1t9pmn-0013eo-JM for pgsql-general@lists.postgresql.org; Sat, 09 Nov 2024 18:02:21 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1731175331; bh=MsAQPogtOofVlFwiqi+CAbPVrY7kj611JOkc4kuem0A=; h=Date:From:Reply-To:To:In-Reply-To:References:Subject:From:Subject:Reply-To; b=bUIv/zbDTiHZL3hNXSvXD7tSKov/ATAs25dvTRg5uzdFfta5blRF0lV85aG5lqfKb+zJADkxxzJV75+OFLdpOl0BgtFEAf6StTb0Ca5UH1xtUFvebHifIcf4k322Uoh0d7CkFWj2qjjJmxRp/oXVTsycDvvtN2WSMlVyNjcUDPFcp05fAPinY69J7UqkosQxbTEExp6KP2+tJGx0Ephj5Y07OU2UsqOsInafKKjZpoEVSpKddI3fvZPzhfhn9Q7/k9M3dxNIZG+yLk21VeJN0zovrBKtjLxs2q83qYq5MMGwTAvby9jKOApH9wsAuB9rG94PG4sFM19Kymj2/RQfSQ== X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1731175331; bh=BTRJMelAuAEBcvwhxNhHh4CjysuiE/9/3jz0iJXX/be=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=aKOD2NeUiIfsB6+457X9yEJkt9xQDCRCMlEh7KMX/pF0MPzgq1rM05E3vjMeOfI7KwMrd3vS/PpIT9tahWQIYRGllZ9SGEj7BG9zys0SlNVB+5v6If/gCRyb+A+zIB4FlZgZT2ojYR1UryrrU/1vb3G8ro1ZwW2+WBBt5FCRiMRkoxIJc9e995idmng6TH2mURQ+W16bl1cXz4uTG+Zl50Izz+ed+V0bHKXPXqbKRt0gNF6GqPGfjow65Uw+ZgxEb7Q8uDq9KkcM4USn5AuBXJpGS16muGPwVbbhg1rRQbWn7f2UcOVNp6yn/++VFUWQsi3sYy9ZW1fQY75hWEot1A== X-YMail-OSG: nk5p93UVM1k0J_KKGznOC9macXDJ8S0p52JmDk9nVnex_tANtUs.6X.gdXLklv1 zJoBd_dI2ezJLfpe0hcKxOsGJp.QbblJuDXGy8I.jRxwrd5wnyfUT4fwBt6W8yFd709LS1MVo17R kG6iqU1s0RAEXpPiI.tfgE6L_262bhycJIl8lKINY5RZl0a4AluX9riOKItdmI4LKlojvuZ.ie35 n0lYdYUilf0D0OEN1cKLIzaSriSojSxUDI4PA_kA817VcM9WJZ5frMC4VAziYHe1xoReZa372hFa mPKetOf8QxOl1S3tuuAMztRFL2YmauWwaShpxCYpZs2J5O86bzg0aBApoWdRNlwUKUToZ4TsWEcS 4olgw_saQmdfl8GGGS_ehAc3mY_gt7y6njLdfyZgDXuhvh.rmch.Ur_RwtXQjF3Xtg5T.S5efo7F FaMzSdkxvDll_Ap_5Vos3U4UWuSLw9k.XOIw9gDuUpuNVdP7a0sgoxzyVgSVAEqvRy1Iwo2qtsot Wv0EQMz6_Ye5QUp9QnfgK6k0wjRtnHTlMhyrQgtaYiSQzgtwb_lwDEOtqhXYyG8.24VTmbleTj.E cpS2rJrDOZ2KMW5tmilMZgzQRpvdF7qRCPRpC.sdYw0bAlyXNB0TukoruFHbyg_7xvvFuteJOWbd FzRuvWkmh4KHHPipaYj2LU2i_k8z9yiRfeiK.Y3lXdbBNY_SMMoUek0A7VgO7uXxLekisKPNYuPv ts88d3BZZdilTR1g3rgdlA7fJIfb5DCeuyndTBwVKcNPQlM0K35UXvjdXMuDq4oDlREdPHymjm4R D3CxnHBU1ionMju8k4K0O.h5XRP2AetygnZuzocgLljZUUValx7.xNyw1zk2BJtt5jF.605XD9px KywJjyD80CwAcJDBPk_ym.Po6votdNzaSpPUAOx5ETnBFyxRHO4L8mD1vOag9oeDhfy9KwGI.YTl n..bPgRHCqKHrj4avydBLOsMkkftXJfeocXtpI7oZvsIJf1mhwsld2ymCm4k23GClBhgE_Wx94l5 j0FAr0TkHdhd4B1AAfrT8GiEePBEq_W76C_7CbTlnAsekq0kN9Lke2ueaE.0kNq1hpluYW_U2IHa f7vMdp7OxTXxt28VafTtoFj46jOUCgbAVzPxLQFySKGr6WHjIiqPup12z5HZArhtWMFDXDAnuAFt utU5lxWKJGbhyCFPe2gsFt2IrBTk2F3EfRsjs1n65AZK9ZxMxZMIW_A_VdOXhutYP6kkkCOnSdWw X1FkeywMshWQNvTwEs4eAWXF.2wwuA8VQQfPQyT0rPvTRkX0tv3eQlM58cZNBszZ_0cUAyyPEHOz ppnTI3.20hy5llScb7c240sZ5_4QfZd42HsPKSkT8bMhnWeBrwz41nhaMveSH2rWTpRvZBL_Wmwk Igiecjqo48qBFroeb7Zeodg1RS9e6qiJ0Dt7BlZUbaBu4jEJaLObi9UmprwMGGDYax1t53a4pJ6c KkdwZkCtbf6OS_8Q.kaNynC9eWTWmZ4rcwjopSvhKDDL6WX4_e7Y4oP7OTfIVU1ZFNNTAQiGzpVK 0Ar5Ha1FVFX7Iq4XFhvTXx6g6cXhjqlxTsdX42Uh268ULuTz1BWs4ssHsSyQxeMajcm4cWH6cKkZ cjHSvlbM5pMcNG8k4qA_aPifaSkKAnz1qsPk3mVIwDVco3jL7cvP9KbCt0YF3C4b4OJGqnC7vE6O favpNnuQBaSKDEDLgwquf02VoNV494yLkFaauqyheUgrUT1qjCnFEOB.v.i8an8.1hzsJln7kehQ X3cHdz_jBJL9ra2lyfRM3zPFk5oOqz4hqYmo710u4LScZKasSkPw63aI0lRIBa87U17x540lt9BM e7vJmvWNqWzwh3VO3sx6m1n30.rfwcKV35xzMm2JrirvZoHHF4klK_jWMfyUL4A7hPDFpStrOD0S g74SNI_7_X46uqXzXqIxZTUvGyLtM_nUY3LrrbJODXZndu5mjEzHXNwNt1i9AbR21Yl_57.wcvbu V5GqjdM9TQNK6jq7XxpvbG0YnjJwBJbtbue5r2FxlNiehdw.d7HNdDc7fS1aYFWADfjTcsTKgcn7 4Vv_dTu.qr.rnyelnlp8mC3a59oXufX8vIWOCbxX3mA5YFxCv59hY_MFoY0nX2cQUfJAW6AS.OaQ NIOCLtaoqIAq0WzrfRchc9X_g8Tu3zNL4oY_ir05A3GyqjqYfWZPrU.i5nAzbd90zpu27KHmF6bo REDnYDfWgD5t48XsqUGyFQeOHCTNfqXmQ8wYSAXMIazmIcfx7pwEX7SngpHnzDlhEs9sJhR.WJ57 OUnCcgO2n9KUy5UbBLUwLAzzEhhefRvKigvEAbSh2Kt0ENiPbb7yIR2Cza2IKMvIKSmca4RSX2Kk AHLO4_GwMPkBS3V22Q_u4TpFbcRShndAXCzfPqFWUop55023MWdoj4Vh5QWkHm70.RyAiBZeexEA - X-Sonic-MF: X-Sonic-ID: 105c225e-ebe8-41c9-a02b-2aeedfe255e2 Received: from sonic.gate.mail.ne1.yahoo.com by sonic306.consmr.mail.ne1.yahoo.com with HTTP; Sat, 9 Nov 2024 18:02:11 +0000 Date: Sat, 9 Nov 2024 18:02:03 +0000 (UTC) From: "Efrain J. Berdecia" Reply-To: "Efrain J. Berdecia" To: mnunna@fnal.gov, "pgsql-general@lists.postgresql.org" Message-ID: <1239230547.604518.1731175323447@mail.yahoo.com> In-Reply-To: References: Subject: Re: Bash function from psql (v14) MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_604517_568208966.1731175323446" X-Mailer: WebService/1.1.22876 YahooMailAndroidMobile Content-Length: 6478 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------=_Part_604517_568208966.1731175323446 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Maybe try using full path... Yahoo Mail: Search, Organize, Conquer=20 =20 On Sat, Nov 9, 2024 at 12:41 PM, Murthy Nunna wrote: = =20 Hi, =20 =C2=A0 =20 I am trying to code bash function and call it from psql. But it is failing.= How can I get this to work. Creating a separate script instead of a functi= on works, but I do not want to do that. I have too many variables to be pas= sed back and forth. Any ideas? =20 =C2=A0 =20 #!/bin/bash =20 psql -d postgres=C2=A0 -p 5433 <<-PSQLBLOCK =20 \! run-bash-function=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 -- This doesn=E2=80=99t work =20 PSQLBLOCK =20 =C2=A0 =20 # Run the function outside PSQLBLOCK. This works! =20 run-bash-function =20 exit $? =20 =C2=A0 =20 # Create bash function =20 run-bash-function () =20 { =20 =C2=A0 echo "in bash function" =20 } =20 # end of bash script =20 =C2=A0 =20 =C2=A0 =20 Run the above script: =20 ./test-bash-function.sh =20 sh: line 1: run-bash-function: command not found =20 in bash function =20 =C2=A0 =20 ------=_Part_604517_568208966.1731175323446 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 7bit Maybe try using full path...


On Sat, Nov 9, 2024 at 12:41 PM, Murthy Nunna
<mnunna@fnal.gov> wrote:

Hi,

 

I am trying to code bash function and call it from psql. But it is failing. How can I get this to work. Creating a separate script instead of a function works, but I do not want to do that. I have too many variables to be passed back and forth. Any ideas?

 

#!/bin/bash

psql -d postgres  -p 5433 <<-PSQLBLOCK

\! run-bash-function                                        -- This doesn’t work

PSQLBLOCK

 

# Run the function outside PSQLBLOCK. This works!

run-bash-function

exit $?

 

# Create bash function

run-bash-function ()

{

  echo "in bash function"

}

# end of bash script

 

 

Run the above script:

./test-bash-function.sh

sh: line 1: run-bash-function: command not found

in bash function

 

------=_Part_604517_568208966.1731175323446--