Thread: Bash function from psql (v14)
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
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
On Sat, 9 Nov 2024 at 23:11, Murthy Nunna <mnunna@fnal.gov> wrote: > 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 separatescript instead of a function works, but I do not want to do that. I have too many variables to be passed back andforth. Any ideas? > Run the above script: > > ./test-bash-function.sh > > sh: line 1: run-bash-function: command not found > > in bash function > > /* postgres@ubuntu:/tmp$ echo 'whoami' >> myscript.sh postgres@ubuntu:/tmp$ chmod a+x myscript.sh postgres@ubuntu:/tmp$ psql <<EOS \! bash /tmp/myscript.sh EOS postgres */ -- Thanks, Vijay Open to work Resume - Vijaykumar Jain
run-bash-function
Thanks, Greg.
- This means what I am trying to do is not meant to work. This won’t work even if I declare the function before calling it in PSQL. I get it.
- You are correct. Function must be declared before the call.
Thanks again.