Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Backticks and $() for command substitution in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is command substitution in bash scripting?
Command substitution lets you run a command and use its output as part of another command or variable assignment.
Click to reveal answer
beginner
How do you use backticks for command substitution?
Place the command inside backticks like this: `command`. Bash runs the command and replaces it with its output.
Click to reveal answer
beginner
What is the modern alternative to backticks for command substitution?
Use $(command) instead of backticks. It is easier to read and can be nested without confusion.
Click to reveal answer
intermediate
Why is $(command) preferred over backticks?
Because it improves readability, allows nesting commands easily, and avoids problems with special characters inside commands.
Click to reveal answer
beginner
Show an example of using command substitution to assign the current date to a variable.
Using backticks: today=`date` Using $(): today=$(date) Both store the current date output into the variable today.
Click to reveal answer
Which syntax is correct for command substitution in bash?
A`ls -l`
BNone of the above
C$(ls -l)
DBoth A and C
Why might you prefer $(command) over backticks?
AIt works only in newer bash versions
BIt is easier to nest commands
CIt uses less memory
DIt is faster to execute
What will this command do? today=`date`
AAssign the string 'date' to today
BRun the date command but do not assign anything
CAssign the output of the date command to today
DCause an error
Which of these is NOT a benefit of using command substitution?
ARun commands faster than normal
BStore command output in variables
CUse command output inside another command
DBuild dynamic commands
What happens if you nest backticks like this: `echo `date``?
AIt causes syntax errors or unexpected results
BIt works fine
CIt runs only the inner command
DIt runs only the outer command
Explain how to use command substitution in bash and why $(command) is preferred over backticks.
Think about readability and nesting commands.
You got /4 concepts.
    Write a bash script snippet that assigns the current date and the current user to variables using command substitution.
    Use the modern $() syntax for clarity.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the command substitution syntax $(date) do in a bash script?
      easy
      A. Creates a new variable named date
      B. Runs the date command and replaces $(date) with its output
      C. Comments out the date command
      D. Prints the literal string $(date) without running the command

      Solution

      1. Step 1: Understand command substitution

        Command substitution runs the command inside $() and replaces it with the command's output.
      2. Step 2: Apply to $(date)

        The date command outputs the current date and time, so $(date) is replaced by that output.
      3. Final Answer:

        Runs the date command and replaces $(date) with its output -> Option B
      4. Quick Check:

        Command substitution = runs command and inserts output [OK]
      Hint: Remember: $() runs command and inserts output [OK]
      Common Mistakes:
      • Thinking it creates a variable
      • Confusing it with comments
      • Expecting literal string output
      2. Which of the following is the preferred syntax for command substitution in bash?
      easy
      A. echo `ls -l`
      B. echo $(ls -l
      C. echo $[ls -l]
      D. echo $(ls -l)

      Solution

      1. Step 1: Identify valid command substitution syntax

        Command substitution uses either backticks `command` or $(command). Both the backtick version and the incomplete $() version look valid at first.
      2. Step 2: Check for best practice and syntax correctness

        echo `ls -l` uses backticks which are valid but less readable and harder to nest. echo $(ls -l) uses $() which is modern and preferred. echo $[ls -l] uses invalid syntax with $[]. echo $(ls -l misses closing parenthesis.
      3. Final Answer:

        echo $(ls -l) -> Option D
      4. Quick Check:

        Use $() for clear command substitution [OK]
      Hint: Use $() for command substitution, it's clearer and nestable [OK]
      Common Mistakes:
      • Using $[] which is arithmetic expansion, not command substitution
      • Missing closing parenthesis
      • Confusing backticks with other symbols
      3. What will be the output of this script snippet?
      files=$(ls /tmp)
      echo "$files"
      medium
      A. Shows an error because of missing quotes
      B. Prints the literal string '$(ls /tmp)'
      C. Lists all files and directories inside /tmp one per line
      D. Prints nothing because variable is empty

      Solution

      1. Step 1: Understand command substitution with ls

        The command ls /tmp lists files in /tmp. Using files=$(ls /tmp) stores that output as a string with filenames separated by newlines.
      2. Step 2: Echo the variable with quotes

        Using echo "$files" prints the content of files preserving newlines, so it lists all files and directories one per line.
      3. Final Answer:

        Lists all files and directories inside /tmp one per line -> Option C
      4. Quick Check:

        Command substitution stores output string = list of files [OK]
      Hint: Command substitution stores output as string, echo prints it [OK]
      Common Mistakes:
      • Expecting literal command string output
      • Confusing quotes causing errors
      • Assuming variable is empty
      4. Identify the error in this script snippet:
      current_dir=`pwd
       echo "Current directory is: $current_dir"
      medium
      A. Missing closing backtick for command substitution
      B. Incorrect use of double quotes
      C. Variable name is invalid
      D. No error, script runs fine

      Solution

      1. Step 1: Check command substitution syntax

        The command substitution using backticks must start and end with backticks. Here, the closing backtick is missing after pwd.
      2. Step 2: Analyze impact of missing backtick

        Without the closing backtick, bash will throw a syntax error and not run the script properly.
      3. Final Answer:

        Missing closing backtick for command substitution -> Option A
      4. Quick Check:

        Backticks must be paired to run commands [OK]
      Hint: Always close backticks to avoid syntax errors [OK]
      Common Mistakes:
      • Forgetting to close backticks
      • Misplacing quotes inside command substitution
      • Assuming variable names cause errors
      5. You want to store the number of files in your home directory in a variable file_count. Which command correctly uses command substitution to do this?
      hard
      A. file_count=$(ls ~ | wc -l)
      B. file_count=`ls ~ wc -l`
      C. file_count=$(ls ~ wc -l)
      D. file_count=ls ~ | wc -l

      Solution

      1. Step 1: Understand the command to count files

        To count files, we list them with ls ~ and pipe to wc -l to count lines (files).
      2. Step 2: Use correct command substitution syntax

        file_count=$(ls ~ | wc -l) correctly uses $(ls ~ | wc -l) to run the full command and store output in file_count. The other options miss the pipe or fail to use command substitution.
      3. Final Answer:

        file_count=$(ls ~ | wc -l) -> Option A
      4. Quick Check:

        Use $() with full command and pipe inside [OK]
      Hint: Use $() with full command including pipes for substitution [OK]
      Common Mistakes:
      • Missing pipe between commands
      • Using backticks without pipe
      • Assigning command without substitution
      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