[SOLVED] Forward function declarations in a Bash or a Shell script?


Is there such a thing in bash or at least something similar (work-around) like forward declarations, well known in C / C++, for instance?

Or there is so such thing because for example it is always executed in one pass (line after line)?

If there are no forward declarations, what should I do to make my script easier to read. It is rather long and these function definitions at the beginning, mixed with global variables, make my script look ugly and hard to read / understand)? I am asking to learn some well-known / best practices for such cases.

For example:

# something like forward declaration
function func

# execution of the function

# definition of func
function func
    echo 123


Great question. I use a pattern like this for most of my scripts:


main() {

foo() {

bar() {

baz() {

main "[email protected]"

You can read the code from top to bottom, but it doesn’t actually start executing until the last line. By passing "[email protected]" to main() you can access the command-line arguments $1, $2, et al just as you normally would.

Answered By – John Kugelman

Answer Checked By – Mary Flores (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published.