Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Accessing variables ($var and ${var}) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does $var mean in bash scripting?
It means to get the value stored in the variable named var. For example, if var holds "hello", then $var will be replaced by "hello".
Click to reveal answer
beginner
Why use ${var} instead of just $var?
Using ${var} helps bash know exactly where the variable name ends. This is useful when you want to add text right after the variable without spaces. For example, ${var}text clearly separates the variable from the word "text".
Click to reveal answer
beginner
What happens if you write $vartext instead of ${var}text?
Bash will look for a variable named vartext, which might not exist. This can cause errors or unexpected results. Using ${var}text avoids this problem.
Click to reveal answer
beginner
How do you print the value of a variable named name in bash?
You can use echo $name or echo ${name}. Both will print the value stored in name.
Click to reveal answer
beginner
Can you use curly braces {} with variables in all cases?
Yes, you can always use ${var} safely. It is especially helpful when you want to add characters immediately after the variable name without confusion.
Click to reveal answer
What does $var do in bash?
ACreate a new variable named var
BAccess the value stored in variable var
CDelete the variable var
DPrint the word '$var' literally
Why use ${var} instead of $var?
ATo create a new variable
BTo make the script run faster
CTo clearly mark the variable name boundaries
DTo comment out the variable
What happens if you write $vartext when you meant ${var}text?
ABash looks for a variable named vartext
BBash prints the value of var and then 'text'
CBash throws a syntax error
DBash ignores the text after var
How to print the value of variable name in bash?
Aecho $name
Bprint name
Cecho name
Dprint $name
Is ${var} always safe to use?
AOnly in functions
BNo, it causes errors
COnly in loops
DYes, it clearly defines variable boundaries
Explain how and why to use $var and ${var} in bash scripting.
Think about how bash reads variable names and what happens when you add text right after a variable.
You got /3 concepts.
    Describe a common mistake when accessing variables without curly braces and how to fix it.
    Focus on how bash interprets variable names when followed by text.
    You got /3 concepts.

      Practice

      (1/5)
      1. In bash scripting, what is the main reason to use ${var} instead of just $var?
      easy
      A. To clearly separate the variable name from surrounding text
      B. To declare a new variable
      C. To comment out the variable
      D. To convert the variable to uppercase

      Solution

      1. Step 1: Understand variable access syntax

        In bash, $var accesses the value of a variable named var.
      2. Step 2: Purpose of braces

        Using ${var} helps separate the variable name from other text, avoiding confusion when concatenating.
      3. Final Answer:

        To clearly separate the variable name from surrounding text -> Option A
      4. Quick Check:

        Braces separate variable name from text = A [OK]
      Hint: Use braces to avoid mixing variable name with text [OK]
      Common Mistakes:
      • Thinking braces declare variables
      • Using braces to comment variables
      • Assuming braces change variable case
      2. Which of the following is the correct way to print the value of variable name followed immediately by the string _end in bash?
      easy
      A. echo $name_end
      B. echo $name _end
      C. echo ${name_end}
      D. echo ${name}_end

      Solution

      1. Step 1: Understand variable and string concatenation

        To print variable name followed by _end, we must separate the variable name from the string.
      2. Step 2: Use braces to separate variable name

        Using ${name}_end correctly prints the variable value plus the string _end. Without braces, $name_end looks for a variable named name_end.
      3. Final Answer:

        echo ${name}_end -> Option D
      4. Quick Check:

        Braces separate variable name from text = C [OK]
      Hint: Use braces when adding text right after variable [OK]
      Common Mistakes:
      • Forgetting braces and getting wrong variable
      • Adding space breaks concatenation
      • Using wrong variable name inside braces
      3. What will be the output of this bash script?
      var="world"
      echo "Hello $var!"
      echo "Hello ${var}!"
      echo "Hello $var123"
      echo "Hello ${var}123"
      medium
      A. Hello world! Hello world! Hello world123 Hello 123
      B. Hello world! Hello world! Hello Hello world123
      C. Hello world! Hello world! Hello Hello 123
      D. Hello world! Hello world! Hello world123 Hello world123

      Solution

      1. Step 1: Analyze each echo line

        First two lines print "Hello world!" because $var and ${var} both expand to "world". Third line prints "Hello " because $var123 looks for variable named var123 which is empty. Fourth line prints "Hello world123" because ${var} is "world" plus "123".
      2. Step 2: Combine outputs

        Outputs are:
        Hello world!
        Hello world!
        Hello
        Hello world123
      3. Final Answer:

        Hello world! Hello world! Hello Hello world123 -> Option B
      4. Quick Check:

        Braces separate variable name correctly = D [OK]
      Hint: Braces avoid variable name confusion with suffixes [OK]
      Common Mistakes:
      • Assuming $var123 expands var plus 123
      • Ignoring empty variable var123
      • Confusing output lines order
      4. Given this script snippet:
      filename="report"
      echo "File: $filename.txt"

      Why does it not print File: report.txt as expected?
      medium
      A. Because echo cannot print variables with dots
      B. Because .txt is treated as a command
      C. Because $filename.txt looks for variable named filename.txt which is undefined
      D. Because variable names cannot contain letters

      Solution

      1. Step 1: Understand variable expansion with suffix

        Using $filename.txt makes bash look for variable named filename.txt, which does not exist.
      2. Step 2: Fix with braces

        Using ${filename}.txt correctly expands filename and appends .txt.
      3. Final Answer:

        Because $filename.txt looks for variable named filename.txt which is undefined -> Option C
      4. Quick Check:

        Braces needed to separate variable name from suffix = A [OK]
      Hint: Use braces when adding dot or special chars after variable [OK]
      Common Mistakes:
      • Thinking dot is part of variable name
      • Assuming echo can't print dots
      • Ignoring variable name rules
      5. You want to create a bash script that prints the value of variable user followed by the string _backup only if user is not empty. Which is the best way to write the echo command?
      hard
      A. echo "${user:+${user}_backup}"
      B. echo "${user}_backup"
      C. echo "${user}_backup" && [ -n "$user" ]
      D. echo "$user_backup"

      Solution

      1. Step 1: Understand conditional variable expansion

        The expression ${user:+${user}_backup} prints ${user}_backup only if user is not empty.
      2. Step 2: Compare options

        echo "${user}_backup" always prints _backup even if user is empty. echo "$user_backup" looks for variable user_backup. echo "${user}_backup" && [ -n "$user" ] has wrong syntax mixing echo and condition.
      3. Final Answer:

        echo "${user:+${user}_backup}" -> Option A
      4. Quick Check:

        Use ${var:+value} to print only if var set = B [OK]
      Hint: Use ${var:+value} to print only if var is set [OK]
      Common Mistakes:
      • Using $user_backup instead of ${user}_backup
      • Printing _backup even if user empty
      • Mixing echo with condition incorrectly
      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