# Functions Functions organize your code for reuse. Here's the structure: ```bash function_name() { your_commands } ``` You can also use the `function` keyword for clarity, though it's optional: ```bash function function_name() { your_commands } ``` Example: A simple 'Hello World!' function. ```bash touch hello_function.sh ``` Open `hello_function.sh` and add: ```bash #!/usr/bin/env bash function hello() { echo "Hello World Function!" } hello # Call the function (no parentheses) ``` Save and exit. Make it executable and run: ```bash chmod +x hello_function.sh ./hello_function.sh ``` Functions accept arguments just like scripts. ```bash touch function_args.sh ``` Open `function_args.sh` and add: ```bash #!/usr/bin/env bash function greet_team() { echo "Hello $1!" } greet_team "Dev Team Six" # Pass argument when calling ``` Save and exit. Make it executable and run: ```bash chmod +x function_args.sh ./function_args.sh ``` Document your functions clearly. Include a description, arguments, and expected output/return values. ```bash ####################################### # Description: Greets a single argument. # Globals: None # Arguments: # $1 - Name/value to greet. # Outputs: # Prints a greeting to stdout. # Returns: # 0 on success. ####################################### function greet_example() { echo "Greeting: $1" } ``` Functions are key to building organized and reusable Bash scripts. Master them for efficient automation.