Bird
Raised Fist0
Linux CLIscripting~5 mins

Command chaining (&&, ||, ;) in Linux CLI - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the && operator do in command chaining?
It runs the second command only if the first command succeeds (returns exit status 0). Think of it as "and then if successful."
Click to reveal answer
beginner
What happens when you use the || operator between two commands?
The second command runs only if the first command fails (returns non-zero exit status). It's like saying "or else run this."
Click to reveal answer
beginner
How does the ; operator work in command chaining?
It runs commands sequentially, one after another, regardless of whether the previous command succeeded or failed.
Click to reveal answer
intermediate
Example: What will happen with mkdir test && cd test if the directory already exists?
The mkdir test will fail because the directory exists, so cd test will NOT run because of the && operator.
Click to reveal answer
intermediate
Why might you use command1 || command2 in a script?
To try command1 and if it fails, automatically run command2 as a fallback or error handler.
Click to reveal answer
What does cmd1 && cmd2 do?
ARuns cmd2 first, then cmd1
BRuns cmd2 only if cmd1 fails
CRuns cmd2 only if cmd1 succeeds
DRuns cmd1 and cmd2 regardless of success
What happens with cmd1 || cmd2?
ARuns cmd2 only if cmd1 succeeds
BRuns cmd2 only if cmd1 fails
CRuns both commands always
DRuns cmd1 twice
Which operator runs commands one after another no matter what?
A;
B||
C&&
D|
If you want to run cmd2 only when cmd1 fails, which do you use?
Acmd1 | cmd2
Bcmd1 && cmd2
Ccmd1 ; cmd2
Dcmd1 || cmd2
What will mkdir newdir; cd newdir do?
ARun mkdir, then cd regardless of mkdir success
BRun cd only if mkdir succeeds
CRun cd only if mkdir fails
DRun neither command
Explain how the &&, ||, and ; operators differ in chaining commands.
Think about success and failure conditions for each operator.
You got /3 concepts.
    Describe a real-life situation where you would use command1 || command2 in a script.
    Imagine trying something and doing something else if it doesn't work.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the command chaining operator && do in Linux shell?
      easy
      A. Runs the next command only if the previous command succeeded
      B. Runs the next command only if the previous command failed
      C. Runs all commands regardless of previous command success
      D. Runs the next command in the background

      Solution

      1. Step 1: Understand the meaning of &&

        The && operator runs the next command only if the previous command returns success (exit status 0).
      2. Step 2: Compare with other operators

        || runs next command only if previous failed, and ; runs commands regardless of success.
      3. Final Answer:

        Runs the next command only if the previous command succeeded -> Option A
      4. Quick Check:

        && means run next if success [OK]
      Hint: Remember: && means next runs only on success [OK]
      Common Mistakes:
      • Confusing && with ||
      • Thinking && runs commands regardless
      • Assuming && runs commands in background
      2. Which of the following is the correct syntax to run cmd1 and then cmd2 regardless of cmd1's success or failure?
      easy
      A. cmd1 && cmd2
      B. cmd1 || cmd2
      C. cmd1 ; cmd2
      D. cmd1 & cmd2

      Solution

      1. Step 1: Identify the operator that runs commands regardless

        The semicolon ; runs commands one after another no matter if the first succeeds or fails.
      2. Step 2: Check other options

        && runs next only if first succeeds, || runs next only if first fails, & runs command in background.
      3. Final Answer:

        cmd1 ; cmd2 -> Option C
      4. Quick Check:

        ; runs commands regardless [OK]
      Hint: Use ; to run commands one after another always [OK]
      Common Mistakes:
      • Using && or || when unconditional run is needed
      • Confusing & (background) with ;
      • Missing spaces around operators
      3. What will be the output of the following commands if file.txt does not exist?
      cat file.txt && echo "File exists" || echo "File missing"
      medium
      A. File exists
      B. File missing
      C. No output
      D. cat: file.txt: No such file or directory

      Solution

      1. Step 1: Understand command chaining behavior

        cat file.txt fails because file does not exist, so && echo "File exists" is skipped, and || echo "File missing" runs.
      2. Step 2: Predict output

        The error message from cat is printed to stderr (not shown here), but the command output from chaining is File missing.
      3. Final Answer:

        File missing -> Option B
      4. Quick Check:

        Failed cat triggers || echo [OK]
      Hint: Remember: || runs next if previous fails [OK]
      Common Mistakes:
      • Expecting 'File exists' output
      • Ignoring that cat prints error to stderr
      • Thinking no output appears
      4. Identify the error in this command chaining:
      mkdir newdir || echo "Created" && cd newdir
      medium
      A. The echo message is incorrect
      B. mkdir should be followed by ; not ||
      C. The chaining logic runs cd only if echo runs
      D. No error, command works as intended

      Solution

      1. Step 1: Analyze the chaining logic

        Operators || and && have equal precedence and associate left-to-right: parsed as (mkdir newdir || echo "Created") && cd newdir.
      2. Step 2: Trace execution

        mkdir success: skip echo, success && cd runs. mkdir fail: run echo "Created" (success) && cd runs. Error: echo "Created" runs only on failure (dir exists), wrong message.
      3. Final Answer:

        The echo message is incorrect -> Option A
      4. Quick Check:

        || echo "Created" runs on mkdir fail [OK]
      Hint: || triggers echo only on failure, check message [OK]
      Common Mistakes:
      • Misparsing as right-associative (mkdir || (echo && cd))
      • Thinking cd skips on mkdir success
      • Overlooking echo on mkdir failure
      5. You want to run backup.sh only if prepare.sh succeeds, but if prepare.sh fails, you want to run cleanup.sh. Which command chaining achieves this?
      hard
      A. prepare.sh || cleanup.sh && backup.sh
      B. prepare.sh && (backup.sh || cleanup.sh)
      C. prepare.sh ; backup.sh ; cleanup.sh
      D. prepare.sh && backup.sh || cleanup.sh

      Solution

      1. Step 1: Understand the requirement

        Run backup.sh only if prepare.sh succeeds; if prepare.sh fails, run cleanup.sh.
      2. Step 2: Analyze prepare.sh && backup.sh || cleanup.sh

        prepare.sh && backup.sh || cleanup.sh means: if prepare.sh succeeds, run backup.sh. If either prepare.sh or backup.sh fails, run cleanup.sh. This matches the requirement.
      3. Final Answer:

        prepare.sh && backup.sh || cleanup.sh -> Option D
      4. Quick Check:

        Run backup if prepare succeeds, else cleanup [OK]
      Hint: Use && then || to handle success and failure paths [OK]
      Common Mistakes:
      • Running cleanup even if prepare succeeds
      • Running backup even if prepare fails
      • Using ; which ignores success/failure
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard