On Mon, 22 Sep 2003 shyamperi@davlin.co.in wrote:
> >You do realize that the shell is going to interpret that string in
> >double quotes right?
> I guess so, for the very same I have tried with
> Command: psql test -c "> CREATE FUNCTION add_one (integer) RETURNS
> INTEGER AS ' BEGIN RETURN ''$1'' + 1; END; ' LANGUAGE
> 'plpgsql';"
> But still it is not taking it as $1, instead empty string.
> Ideeally it shud consider $1 as string... but why isn't it
The shell interprets the double quoted string and effectively replaces $1
with the shell's idea of what to put in place of it. This really has
nothing to do with postgres at all. Use a backslash before the $1, or
put it in a file and execute it from there.
Try these for example:
echo "$1"
echo '$1'
echo "\$1"