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
✗ Incorrect
The readonly command marks variables as read-only.
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
✗ Incorrect
Bash prevents changing read-only variables and shows an error.
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
✗ Incorrect
You can assign first, then mark it read-only with 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
✗ Incorrect
Read-only variables cannot be unset or deleted.
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
✗ Incorrect
Read-only variables protect important values from accidental changes.
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
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.
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.
Final Answer:
It makes a variable unchangeable after assignment. -> Option C
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
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.
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.
Final Answer:
readonly MYVAR -> Option B
Quick Check:
Use readonly VAR after assignment [OK]
Hint: Assign first, then use readonly VAR to lock it [OK]
The variable MYVAR is assigned "hello" and then made readonly. The script then tries to change it to "world".
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.
Final Answer:
hello -> Option D
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
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.
Step 2: Analyze the error caused by this syntax
This syntax causes an error because bash expects only variable names after readonly, not assignments.
Final Answer:
Cannot assign value during readonly declaration -> Option A
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
Step 1: Assign the variable before making it readonly
You must first assign CONFIG_PATH a value, then use readonly to lock it.
Step 2: Print the variable after it is readonly
Printing the variable after making it readonly is valid and will show the assigned value.
Final Answer:
CONFIG_PATH=/etc/config
readonly CONFIG_PATH
echo $CONFIG_PATH -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.