Learn Bash Scripting With Me 🚀 – Day 7

Day 7 – Functions

In case you’d like to revisit or catch up on what we covered on Day Five, here’s the link:

https://dev.to/babsarena/learn-bash-scripting-with-me-day-6-1i1n

A function in Bash is a named block of code that you can d…


This content originally appeared on DEV Community and was authored by Babs

Day 7 - Functions

In case you’d like to revisit or catch up on what we covered on Day Five, here’s the link:

https://dev.to/babsarena/learn-bash-scripting-with-me-day-6-1i1n

A function in Bash is a named block of code that you can define once and then call (reuse) multiple times in your script or shell session.

It’s like a mini-script inside your script.

How To Declare A Function

NB- a function must be declared before it is called upon to execute. (note this cause I am about to confuse you later)

There are two ways to declare a function:

  • Style 1: with function, no parentheses needed (but you can add it if you want)
function function_name {
echo "Hello from function"
}

🔎 Breakdown

  • function - This keyword tells Bash: "Hey, I’m about to define a function."

  • function_name - This is the name of the function. You can call it later just by typing: function_name

  • { ... } The curly braces wrap the block of commands that belong to the function. Everything inside will run when you call function_name.

Important detail:

The opening brace { must be on the same line as the function name (or else Bash might get confused).

You need a space before {.

The closing brace } should be on its own line (or at least separated properly).

  • echo "Hello from function" - This is the body of the function — the actual command(s) that will run when you call it.

  • Style 2: without function, parentheses are required

my_bash() {
echo "Hello from function"
}

NB- parenthesis () is a must

🔎 Breakdown

  • my_bash() This is the function name followed by empty parentheses. The () tells Bash: "This is a function definition, not a normal command or variable." Unlike the function keyword style, here the parentheses are required.

  • { ... } Curly braces wrap the body of the function. Everything inside will run when the function is called.

Formatting rules:

  • There must be a space between () and {.

  • Each command inside should be on its own line (or separated by ;).

  • The closing } should be on its own line.

  • echo "Hello from function" This is the command inside the function body.

Sample Using Style 1


#!/bin/bash 

# The goal of this script is to test if the /etc/shadow file that stores password hash exists

function test_shadow {
    echo "---checking for shadow file---"
    if [ -e /etc/shadow ]; then
        echo "shadow file exists"
    fi
}

🔎 Breakdown

#!/bin/bash
  • The shebang line: Tells the system to run this script using the Bash interpreter located at /bin/bash.
# The goal of this script is to test if the /etc/shadow file that stores password hash exists


`

  • The # is used for comment or documentation


function test_shadow { ... }

  • Declares a function named test_shadow. Everything between { ... } will be executed when you call test_shadow.


echo "---checking for shadow file---"

  • Inside the function: Prints a message to show the script is about to test for the file.

    if [ -e /etc/shadow ]; then
    echo "shadow file exists"
    fi

  • if starts a conditional statement.

  • [ -e /etc/shadow ] checks if the file /etc/shadow exists.

  • -e means “file exists (any type)”.

  • ; then separates the condition from the commands that should run if it’s true.

  • echo "shadow file exists" runs only if the condition is true.

  • fi ends the if block (fi is literally if spelled backwards).

Calling the function

To execute it, you need to add this at the bottom:

test_shadow

Output Of The Script

The above image shows the output of the script

NB- Remember I mentioned "a function must be declared before it is called upon to execute. (note this cause I am about to confuse you later)"

This is actually not the case when running a function inside a function.

Running A Function Inside A Function

When you run a Bash script, the shell does two main steps:

  • Parsing (reading and analyzing)

Bash reads the whole script text first.

It breaks the text into commands, keywords, and function definitions.

At this stage, it doesn’t execute the commands — it just understands the structure.

That’s how Bash already knows that there are functions, even before they are called.

  • Execution (actually running commands)

After parsing, Bash starts executing line by line in order.

Sample Script

  • the above is a script I created, run it, share your output and see if you can explain the script or make sense of it on your own.

The output of the script

Note: If this is your first time working with Bash scripting or functions, it’s a good idea to run the scripts first and observe what they do. Afterwards, come back to read the explanations again,this will help you understand the breakdown more clearly.


This content originally appeared on DEV Community and was authored by Babs


Print Share Comment Cite Upload Translate Updates
APA

Babs | Sciencx (2025-09-25T22:20:20+00:00) Learn Bash Scripting With Me 🚀 – Day 7. Retrieved from https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/

MLA
" » Learn Bash Scripting With Me 🚀 – Day 7." Babs | Sciencx - Thursday September 25, 2025, https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/
HARVARD
Babs | Sciencx Thursday September 25, 2025 » Learn Bash Scripting With Me 🚀 – Day 7., viewed ,<https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/>
VANCOUVER
Babs | Sciencx - » Learn Bash Scripting With Me 🚀 – Day 7. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/
CHICAGO
" » Learn Bash Scripting With Me 🚀 – Day 7." Babs | Sciencx - Accessed . https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/
IEEE
" » Learn Bash Scripting With Me 🚀 – Day 7." Babs | Sciencx [Online]. Available: https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/. [Accessed: ]
rf:citation
» Learn Bash Scripting With Me 🚀 – Day 7 | Babs | Sciencx | https://www.scien.cx/2025/09/25/learn-bash-scripting-with-me-%f0%9f%9a%80-day-7/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.