0Pricing
Linux Command Line Mastery · Leçon

Instructions conditionnelles : `if`, `else`, `case`

Mettez en œuvre une logique décisionnelle dans vos scripts à l’aide de différentes structures conditionnelles.

Instructions conditionnelles : `if`, `else`, `case` est une leçon Linux Command Line Mastery gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Linux Command Line Mastery, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Linux Command Line Mastery comprend 4 leçons au total.

Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.

Making Decisions in Scripts

In shell scripting, just like in life, you often need to make decisions. Conditional statements allow your scripts to execute different commands based on whether a certain condition is true or false.

This is crucial for creating flexible and powerful scripts that can adapt to different situations or user inputs.

The Basic `if` Statement

The simplest conditional is the if statement. It checks a condition, and if that condition is true, it executes a block of commands. If false, it skips them.

The basic syntax looks like this:

  • if [ condition ]; then
  • # commands to run if true
  • fi

Remember fi to close the if block!

Simple `if` Example

Let's see a simple if statement in action. This script checks if a variable num is greater than 5.

Try changing the value of num to see how the output changes!

#!/bin/bash

num=7

if [ "$num" -gt 5 ]; then
  echo "Number is greater than 5."
fi

num=3

if [ "$num" -gt 5 ]; then
  echo "Number is greater than 5. (This won't print)"
fi

`if-else`: Two Paths

What if you want to execute one set of commands if a condition is true, and a different set if it's false? That's where else comes in.

The if-else statement provides two distinct paths for your script:

  • if [ condition ]; then
  • # commands if condition is true
  • else
  • # commands if condition is false
  • fi

Using `if-else`

This script uses if-else to determine if a number is even or odd. We use the arithmetic evaluation (( )) for clearer number comparisons and calculations.

The % operator gives the remainder of a division. If num % 2 is 0, it's even!

#!/bin/bash

num=4

if (( num % 2 == 0 )); then
  echo "$num is an even number."
else
  echo "$num is an odd number."
fi

num=9

if (( num % 2 == 0 )); then
  echo "$num is an even number. (This won't print)"
else
  echo "$num is an odd number."
fi

`elif`: Multiple Conditions

Sometimes you have more than two possible outcomes. For these situations, you can use elif (short for "else if") to check multiple conditions sequentially.

The script checks conditions one by one. The first one that's true gets its commands executed, and the rest are skipped.

  • if [ cond1 ]; then ...
  • elif [ cond2 ]; then ...
  • else ...
  • fi

Chain of `elif`

Here's an example using if-elif-else to assign a letter grade based on a score. Notice how the conditions are checked from highest to lowest score.

If a score is 95, the first if condition (>= 90) is met, and it prints "A". The other elif and else blocks are then ignored.

#!/bin/bash

score=85

if [ "$score" -ge 90 ]; then
  echo "Grade: A"
elif [ "$score" -ge 80 ]; then
  echo "Grade: B"
elif [ "$score" -ge 70 ]; then
  echo "Grade: C"
else
  echo "Grade: F"
fi

`case`: Simple Selection

When you have a single variable or expression that can have many possible values, and you want to perform different actions for each value, the case statement is often cleaner than a long if-elif-else chain.

It's great for menu-driven scripts or handling specific input options.

  • case $variable in
  • pattern1) commands ;;
  • pattern2) commands ;;
  • *) default commands ;;
  • esac

Using `case` Statements

This script demonstrates how to use case to respond to different user actions (start, stop, restart). The *) pattern acts as a default, catching any unmatched values.

Each block of commands ends with ;;, which is crucial for the case statement to work correctly.

#!/bin/bash

action="start"

case "$action" in
  "start")
    echo "Starting service..."
    ;;
  "stop")
    echo "Stopping service..."
    ;;
  "restart")
    echo "Restarting service..."
    ;;
  *) # Default case for anything else
    echo "Invalid action: $action"
    ;;
esac

action="status"

case "$action" in
  "start") echo "Starting service..." ;;
  "stop") echo "Stopping service..." ;;
  "restart") echo "Restarting service..." ;;
  *) echo "Invalid action: $action" ;;

esac

Conditional Challenge

Read the script below carefully. What will be the output when this script is run?

#!/bin/bash

color="blue"

if [ "$color" == "red" ]; then
  echo "It's a primary color."
elif [ "$color" == "yellow" ]; then
  echo "It's another primary color."
elif [ "$color" == "blue" ]; then
  echo "Yes, blue is primary!"
else
  echo "Unknown color."
fi

Decisions Made Easy

Great job! You've learned the fundamental ways to add decision-making logic to your shell scripts.

  • if: Executes commands if a condition is true.
  • if-else: Provides two paths, one for true and one for false.
  • elif: Allows chaining multiple conditions for more complex logic.
  • case: A clean way to handle multiple choices based on a single value.

These constructs are essential for writing scripts that can respond dynamically to different inputs and situations.

Questions Fréquemment Posées

La leçon « Instructions conditionnelles : `if`, `else`, `case` » est-elle gratuite ?

Oui — le texte complet de « Instructions conditionnelles : `if`, `else`, `case` » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Linux Command Line Mastery, passe à CoddyKit PRO. Le cours Linux Command Line Mastery comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Instructions conditionnelles : `if`, `else`, `case` » ?

Mettez en œuvre une logique décisionnelle dans vos scripts à l’aide de différentes structures conditionnelles. Tu pratiques Linux Command Line Mastery avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Linux Command Line Mastery ?

Aucune expérience préalable n'est requise. Linux Command Line Mastery sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Instructions conditionnelles : `if`, `else`, `case` » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Linux Command Line Mastery ?

Oui. Chaque leçon Linux Command Line Mastery inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Variables, entrée et sortie
  2. Instructions conditionnelles : `if`, `else`, `case`
  3. Boucles : `for`, `while`, `until`
  4. Fonctions et arguments dans les scripts Shell
← Retour à Linux Command Line Mastery