FactorPad
Faster Learning Tutorials

Linux bash shell script function with examples

function allows you to create a script within a script. (function is technically a bash keyword, not a command)
  1. Purpose - Learn what function is for and how to find help.
  2. Options - Review a few common options and arguments.
  3. Examples - Walk through code examples with function.
  4. Script - Add function to our script and run it.
  5. A tip - Finish off with one more insight.
Paul Alan Davis, CFA, November 22, 2016
Updated: August 6, 2018
In this tutorial, 95 of 100, below find a 3-4 minute introductory video, a text-based tutorial and all of the code examples from the video.

Outline Back Next

~/ home  / tech  / linux essentials  / function command


The Linux function command (keyword)

Intermediate

Learn to create a script within a script at the Linux command line.

Video Tutorial

Linux bash shell script function with examples (3:43)

Videos can also be accessed from the YouTube Playlist.

Video Script

The Command and Why You Need It

Our ninety-fifth word, or command (keyword) to memorize is function from our category Workflow.

function allows you to create a script within a script.

Recall from videos (tutorials) #87 to #94, we're building a script to demonstrate workflow, and now we'll introduce function and then see them in a script.

Before we start, it helps to think of commands as mini programs and most follow this structure: command -option(s) argument(s).

The function command (keyword) has no traditional options and no arguments as it has its own syntax, and like if covered in video (tutorial) #94, a function is technically a bash keyword, and not a command.

Unlike most commands, help is not available with double-dash --help, as the function is a shell built-in covered in the bash man page. Because of their multi-line structure, these are coded in scripts only.

So why is function an important command (keyword)? Well, we writing scripts within scripts is essential. And now you know how to do that.

Demonstration

Okay, the best way to embed this in your memory is by typing in your own terminal window.

Find this on your Mac using a program called Terminal. On Linux use Terminal or Konsole, and currently Microsoft is adding this functionality to Windows.

Here we go. To confirm, let's quickly use type function.

$ type function function is a shell keyword

We can see that it is a keyword.

And then now, let's view our script here, and we're using nano.

$ nano bin/funscript

(Below is the screen from within nano.)

GNU nano 2.2.6 File: /home/factorpad/bin/funscript #!/bin/bash # The shebang gives the absolute path to the executable program # To see if it points to the right executable try: which bash # This is our first script called funscript # From video 95, we add four functions above other code # First form uses: functions { commands return } syntax # 1) Function prints system statistics function fun_stats { printf "\tCollecting system status\n" echo "Disk space and % used" df -h --output='size','pcent' /home sleep 5s return } # Second form uses: name () { command return } syntax # 2) Function collects returns text file data from factorpad.com website fun_returns () { printf "\tCollecting returns data\n" wget factorpad.com/returns.txt --quiet -O video95.txt printf "\tInvestment modeling boot camp data downloaded\n" sleep 5s return } (the rest of the lines in script trimmed) ^G Get Help ^0 WriteOut ^R Read File ^Y Prev Page ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where Is ^V Next Page ^U UnCut Text ^T To Spell

First, functions are placed above primary code. That's kind of normal here with functions. Above the code in the script, they are not acted on until called later within the script. That is an important point I wanted to make.

Next, functions come in two equivalent forms. First, using function, a name, space, open curly-brace, then indented you see commands and finally a right curly brace here closes it all out (see function #1 above). And you have an empty line after that.

Then the second form uses, a name simply, then open and close parentheses, left curly brace, the indented code block and the same close that you saw before (see function #2 above).

(Please note: the code above is meant to illustrate the concept of a multi-level conditional statement. It will not run without other code in the script. Go to the last video #100 to see the code for the whole script if you'd like to try it on your own.)

(Hit Ctrl-x to leave nano and y to confirm saving.)

And last, because we can't tackle this in 3 minutes, don't sweat the code here, but tune in to the next video (tutorial) to see how it all plays out.

A Final Tip

Okay now you know how to use function. And you know the syntax for commands, options and arguments.

One last tip about the function command (keyword). So after a few more videos (tutorials) and some practice, you will be a programmer. Isn't that exciting?

Okay, thanks for visiting today. I hope this was a helpful introduction to the function command (keyword).


Learn More About The Series

For an overview of the 100 videos, the 8 quizzes, a cheat sheet, the categories and a Q&A section, visit:


What's Next?

See other scripts and programs built in other languages at our YouTube Channel. Subscribe here.

  • For the Outline to all 100 tutorials, click Outline.
  • To go back to the if statement, hit Back.
  • To see how the while keyword helps us create a program loop, click Next.

Outline Back Next

~/ home  / tech  / linux essentials  / function command



 
 
Keywords:
linux function
bash scripting tutorial
bash function
shell script
shell script function
linux shell script
function in shell script
function in bash
bash call function
bash shell script
linux programming
bash function example
shell script variable
shell scripting
bash scripting example
shell programming
bash function return
shell script example