Your problem has nothing to do with PostgreSQL. The DECLARE man page you pulled up describes a SQL-language command (i.e. nothing to do with your shell -- it only has meaning to a PostgreSQL database).
I'm betting that if you change the first line of t2.sh from: #!/bin/sh to: #!/bin/bash it will work as expected. The "declare" command is a bash built-in (see http://www.gnu.org/software/bash/manual/html_node/Bash-Builtins.html #index-declare-133 ) -- from this example, it looks like it's just not present in /bin/sh (presumably by design). ** Changed in: bash (Ubuntu) Status: New => Invalid -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/701965 Title: declare broken in bash -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs