2 min read

Working with Bash Variables: A Practical Guide

Table of Contents

Variables are the building blocks of any script, and Bash is no exception. Understanding how to work with them effectively is crucial for writing powerful and flexible scripts. This guide will walk you through the essentials of Bash variables.

Variable Substitution

The most basic operation is substituting a variable’s value. The type of quotes you use is important:

  • Double quotes (") allow variable expansion.
  • Single quotes (') prevent variable expansion.
foo="bar"
echo "$foo" # Outputs: bar
echo '$foo' # Outputs: $foo

String Manipulation

Bash provides several ways to manipulate strings stored in variables.

Get the Length of a Variable

var="some string"
echo ${#var} # Outputs: 11

Substring Extraction

Extract a portion of a string.

var="some string"
echo ${var:2} # Outputs: me string

Search and Replace

Replace parts of a string.

var="hello world"
# Replace the first occurrence
echo ${var/world/bash} # Outputs: hello bash

# Replace all occurrences
var="hello world, hello there"
echo ${var//hello/hi} # Outputs: hi world, hi there

Changing Case

Easily convert the case of a string.

var="HelloWorld"
echo ${var,,} # Outputs: helloworld
echo ${var^^} # Outputs: HELLOWORLD

Indirect Expansion with eval

The eval command allows you to execute a string as a command. This can be useful for dynamic variable creation.

cmd="bar=foo"
eval "$cmd"
echo "$bar" # Outputs: foo

Conclusion

These are just a few of the ways you can work with variables in Bash. Mastering these techniques will allow you to write more sophisticated and efficient scripts. Experiment with these examples and see how you can incorporate them into your own work.