What are the parentheses used for in a bash shell script function definition like “f () {}”? Is it different than using the “function” keyword?

The keyword function has been deprecated in favor of function_name() for portability with the POSIX spec

A function is a user-defined name that
is used as a simple command to call a
compound command with new positional
parameters. A function is defined with
a “function definition command”.

The format of a function definition
command is as follows:

fname() compound-command[io-redirect ...]

Note that the { } are not mandatory so if you’re not going to use the keyword function (and you shouldn’t) then the () are necessary so the parser knows you’re defining a function.

Example, this is a legal function definition and invocation:

$ myfunc() for arg; do echo "$arg"; done; myfunc foo bar
foo
bar

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)