0
0
Bash-scriptingHow-ToBeginner · 3 min read

How to Create Interactive Bash Scripts Easily

To create an interactive bash script, use the read command to get input from the user during script execution. Combine it with echo to prompt the user and conditional statements to respond based on input.
📐

Syntax

The basic syntax to get user input in bash is:

  • read variable_name: waits for user input and stores it in variable_name.
  • echo: displays a message or prompt to the user.
  • Conditional statements like if or case can be used to act on the input.
bash
echo "Enter your name:"
read name
if [ "$name" != "" ]; then
  echo "Hello, $name!"
else
  echo "You did not enter a name."
fi
💻

Example

This example script asks the user for their favorite color and responds accordingly. It shows how to prompt, read input, and use a conditional to give feedback.

bash
#!/bin/bash

echo "What is your favorite color?"
read color

if [ "$color" = "blue" ]; then
  echo "Blue is a cool color!"
elif [ "$color" = "red" ]; then
  echo "Red is so vibrant!"
else
  echo "$color is a nice choice!"
fi
Output
What is your favorite color? blue Blue is a cool color!
⚠️

Common Pitfalls

Common mistakes when creating interactive bash scripts include:

  • Not prompting the user clearly before read, causing confusion.
  • Forgetting to quote variables in conditions, which can cause errors if input is empty or contains spaces.
  • Not handling empty input, which can lead to unexpected script behavior.
bash
echo "Enter your age:"
read age

# Wrong: missing quotes, can cause errors
if [ $age -ge 18 ] 2>/dev/null; then
  echo "You are an adult."
fi

# Right: quotes protect against empty or spaced input
if [ "$age" -ge 18 ] 2>/dev/null; then
  echo "You are an adult."
else
  echo "Invalid or missing age input."
fi
📊

Quick Reference

Here is a quick cheat sheet for interactive bash scripting commands:

CommandPurpose
echo "message"Display a message or prompt to the user
read variableWait for user input and store it in a variable
if [ condition ]; then ... fiRun commands based on a condition
case $variable in pattern) ... ;; esacHandle multiple input options easily
"$variable"Always quote variables to avoid errors with spaces or empty input

Key Takeaways

Use read to get user input in bash scripts.
Always prompt the user clearly before reading input.
Quote variables in conditions to avoid errors.
Handle empty or invalid input to make scripts robust.
Use conditional statements to respond to user input.