Skip to content

Bash Functions: How to Create and Use Them

homepage-banner

Introduction

Bash, or the Bourne-Again Shell, is a popular command-line interface used in many Unix-based operating systems. Bash functions are an essential feature of the shell, allowing users to create reusable code blocks that can take arguments and return values. In this blog post, we will explore the basics of creating and using Bash functions, along with some examples.

Creating a Bash Function

To create a Bash function, you need to use the function keyword followed by the name of the function and a set of parentheses. Here is an example of a simple function that prints “Hello, World!”:

function hello_world {
  echo "Hello, World!"
}

You can also define a function without the function keyword, like this:

hello_world() {
  echo "Hello, World!"
}

Both of these methods are equivalent and can be used interchangeably.

Using a Bash Function

To use a Bash function, you simply need to call it by name. Here is an example of how to call the hello_world function:

hello_world

This will output “Hello, World!” to the console.

Examples

Now that we know how to create and use Bash functions, let’s look at some examples.

Example 1: Adding Two Numbers

This function takes two arguments, adds them together, and returns the result:

add() {
  sum=$(($1 + $2))
  echo $sum
}

You can call this function like this:

result=$(add 3 5)
echo $result

This will output “8” to the console.

Example 2: Checking File Existence

This function checks if a file exists and returns a message accordingly:

file_exists() {
  if [ -e $1 ]; then
    echo "$1 exists"
  else
    echo "$1 does not exist"
  fi
}

You can call this function like this:

file_exists file.txt

This will output “file.txt exists” if the file exists in the current directory.

Example 3: Counting Lines in a File

This function counts the number of lines in a file and returns the result:

count_lines() {
  lines=$(wc -l < $1)
  echo "The file $1 has $lines lines"
}

You can call this function like this:

count_lines file.txt

This will output “The file file.txt has X lines”, where X is the number of lines in the file.

Example 4: Change Workspace to Script Dir

#!/usr/bin/env bash

work_dir() {
    WORK_DIR=$(
        cd "$(dirname "$0")"
        pwd
    )
    cd ${WORK_DIR}
}

work_dir

Conclusion

Bash functions are a powerful tool that can help you write more efficient and reusable code. By creating functions that can take arguments and return values, you can save time and reduce errors in your scripts. We hope this post has provided you with a good introduction to Bash functions and some examples to help you get started. Happy scripting!

Leave a message