Bird
Raised Fist0
Bash Scriptingscripting~5 mins

Read-only variables (readonly) in Bash Scripting - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the readonly command do in bash scripting?
It marks a variable as read-only, so its value cannot be changed or unset after being set.
Click to reveal answer
beginner
How do you declare a read-only variable named MY_VAR with value hello?
Use readonly MY_VAR="hello" or MY_VAR="hello"; readonly MY_VAR.
Click to reveal answer
beginner
What happens if you try to change a read-only variable in bash?
Bash will show an error message and will not allow the variable's value to be changed.
Click to reveal answer
beginner
Can you unset a read-only variable in bash?
No, once a variable is marked read-only, it cannot be unset or deleted.
Click to reveal answer
beginner
Why use read-only variables in bash scripts?
To protect important values from accidental changes, making scripts more reliable and easier to debug.
Click to reveal answer
Which command makes a variable read-only in bash?
Aexport
Breadonly
Cdeclare -i
Dunset
What happens if you try to assign a new value to a read-only variable?
AThe value changes successfully
BThe variable is unset
CBash throws an error and keeps the original value
DThe script exits immediately
How do you declare a read-only variable after assigning it a value?
Areadonly VAR=value
BVAR=value; export readonly VAR
Cdeclare readonly VAR=value
DVAR=value; readonly VAR
Can you unset a variable marked as read-only?
ANo, read-only variables cannot be unset
BYes, with <code>unset</code>
COnly if you use <code>readonly -u</code>
DOnly in interactive shells
Why is it useful to use read-only variables in scripts?
ATo prevent accidental changes to important values
BTo save memory
CTo speed up script execution
DTo allow variables to be shared between scripts
Explain how to create and use a read-only variable in bash scripting.
Think about how to protect a variable from changes.
You got /4 concepts.
    Describe what happens if you try to modify or unset a read-only variable in bash.
    Consider bash's behavior when protecting variables.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the readonly command do in a bash script?
      easy
      A. It prints the value of a variable.
      B. It deletes a variable from the script.
      C. It makes a variable unchangeable after assignment.
      D. It allows a variable to be changed multiple times.

      Solution

      1. Step 1: Understand the purpose of readonly

        The readonly command is used to mark a variable so it cannot be changed later in the script.
      2. Step 2: Compare options with the command's function

        Only "It makes a variable unchangeable after assignment." correctly describes that the variable becomes unchangeable after assignment.
      3. Final Answer:

        It makes a variable unchangeable after assignment. -> Option C
      4. Quick Check:

        readonly = makes variable unchangeable [OK]
      Hint: Readonly means variable cannot be changed after set [OK]
      Common Mistakes:
      • Thinking readonly deletes the variable
      • Confusing readonly with printing variable
      • Assuming readonly allows changes
      2. Which of the following is the correct syntax to make a variable MYVAR read-only in bash?
      easy
      A. readonly MYVAR =value
      B. readonly MYVAR
      C. MYVAR readonly
      D. set readonly MYVAR

      Solution

      1. Step 1: Recall the syntax of readonly

        The correct syntax is to first assign the variable, then use readonly MYVAR to make it read-only.
      2. Step 2: Analyze each option

        readonly MYVAR =value tries to assign and readonly together, which is invalid. readonly MYVAR correctly uses readonly MYVAR. Options C and D are not valid bash syntax.
      3. Final Answer:

        readonly MYVAR -> Option B
      4. Quick Check:

        Use readonly VAR after assignment [OK]
      Hint: Assign first, then use readonly VAR to lock it [OK]
      Common Mistakes:
      • Trying to assign value inside readonly command
      • Placing readonly after variable name
      • Using invalid commands like set readonly
      3. What will be the output of this script?
      MYVAR=hello
      readonly MYVAR
      MYVAR=world
      echo $MYVAR
      medium
      A. world
      B. Error: cannot modify readonly variable
      C. Syntax error
      D. hello

      Solution

      1. Step 1: Understand the script flow

        The variable MYVAR is assigned "hello" and then made readonly. The script then tries to change it to "world".
      2. Step 2: Predict the behavior when modifying a readonly variable

        Bash will produce an error message when trying to assign a new value to a readonly variable, but the script will continue and the value of MYVAR remains "hello". The echo command outputs the original value.
      3. Final Answer:

        hello -> Option D
      4. Quick Check:

        Readonly variable value remains unchanged; echo prints original value [OK]
      Hint: Changing readonly variable causes error message but value unchanged [OK]
      Common Mistakes:
      • Assuming variable changes silently
      • Expecting syntax error instead of runtime error
      • Thinking echo prints new value
      4. Identify the error in this script:
      readonly MYVAR =10
      MYVAR=20
      echo $MYVAR
      medium
      A. Cannot assign value during readonly declaration
      B. Variable name is invalid
      C. Missing export keyword
      D. No error, script runs fine

      Solution

      1. Step 1: Check the syntax of readonly with assignment

        In bash, readonly cannot be combined with assignment like readonly MYVAR =10. The variable must be assigned first, then made readonly.
      2. Step 2: Analyze the error caused by this syntax

        This syntax causes an error because bash expects only variable names after readonly, not assignments.
      3. Final Answer:

        Cannot assign value during readonly declaration -> Option A
      4. Quick Check:

        Assign first, then readonly VAR separately [OK]
      Hint: Assign before readonly; no assignment inside readonly [OK]
      Common Mistakes:
      • Trying to assign value inside readonly command
      • Ignoring syntax error messages
      • Confusing export with readonly
      5. You want to protect a variable CONFIG_PATH so it cannot be changed accidentally in your script, but you also want to print its value later. Which sequence of commands is correct?
      hard
      A. CONFIG_PATH=/etc/config readonly CONFIG_PATH echo $CONFIG_PATH
      B. readonly CONFIG_PATH=/etc/config echo $CONFIG_PATH
      C. CONFIG_PATH=/etc/config echo $CONFIG_PATH readonly CONFIG_PATH
      D. echo $CONFIG_PATH CONFIG_PATH=/etc/config readonly CONFIG_PATH

      Solution

      1. Step 1: Assign the variable before making it readonly

        You must first assign CONFIG_PATH a value, then use readonly to lock it.
      2. Step 2: Print the variable after it is readonly

        Printing the variable after making it readonly is valid and will show the assigned value.
      3. Final Answer:

        CONFIG_PATH=/etc/config readonly CONFIG_PATH echo $CONFIG_PATH -> Option A
      4. Quick Check:

        Assign, then readonly, then print [OK]
      Hint: Assign first, readonly second, then use variable [OK]
      Common Mistakes:
      • Trying to assign inside readonly
      • Printing variable before assignment
      • Making variable readonly before assignment
      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