Bird
Raised Fist0
Bash Scriptingscripting~10 mins

Read-only variables (readonly) in Bash Scripting - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to declare a read-only variable named MY_VAR with value 10.

Bash Scripting
readonly [1]=10
Drag options to blanks, or click blank then click option'
Avar1
Bmy_var
CMY_VAR
Dreadonly
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'readonly' as the variable name.
Using lowercase variable names when uppercase is expected.
2fill in blank
medium

Complete the code to print the value of the read-only variable MY_VAR.

Bash Scripting
echo [1]
Drag options to blanks, or click blank then click option'
AMY_VAR
B$MY_VAR
CMY_VAR$
D${MY_VAR}
Attempts:
3 left
💡 Hint
Common Mistakes
Forgetting the dollar sign before the variable name.
Using variable name without braces which can cause errors in some contexts.
3fill in blank
hard

Fix the error in the code that tries to change a read-only variable MY_VAR to 20.

Bash Scripting
readonly MY_VAR=10
[1]
MY_VAR=20
Drag options to blanks, or click blank then click option'
Aunset MY_VAR
Breadonly MY_VAR
Cexport MY_VAR
DMY_VAR
Attempts:
3 left
💡 Hint
Common Mistakes
Trying to assign a new value directly to a readonly variable.
Using 'export' which does not remove readonly status.
4fill in blank
hard

Fill both blanks to declare a read-only variable VAR with value 100 and then print it.

Bash Scripting
[1] VAR=100
[2] $VAR
Drag options to blanks, or click blank then click option'
Areadonly
Becho
Cprint
Dexport
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'print' instead of 'echo' to display the value.
Using 'export' which does not make the variable read-only.
5fill in blank
hard

Fill all three blanks to declare a read-only variable NAME with value 'Alice', print it, and then try to change it (which should fail).

Bash Scripting
[1] NAME="Alice"
[2] $NAME
NAME=[3]
Drag options to blanks, or click blank then click option'
Areadonly
Becho
C"Bob"
Dprint
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'print' instead of 'echo' to display the value.
Trying to change the readonly variable without unsetting it first.

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