What Is Readonly in Shell Scripting?


Larry Thompson

Shell scripting is a powerful tool that allows users to automate tasks and perform complex operations in a Unix-like environment. One feature of shell scripting that can be particularly useful is the “readonly” attribute. In this article, we will explore what “readonly” means in the context of shell scripting and how it can be used effectively.

What is Readonly?

The “readonly” attribute in shell scripting is used to define variables that cannot be modified once they are set. This means that once a variable is marked as readonly, any attempt to change its value will result in an error. Readonly variables are read-only, meaning they can only be read from, not written to.

How to Declare Readonly Variables

To declare a variable as readonly, you need to use the “readonly” keyword followed by the variable name. Here’s an example:

readonly MY_VARIABLE="Hello World"

In this example, the variable “MY_VARIABLE” is declared as readonly and assigned the value “Hello World”. Now, if you try to change the value of this variable later in your script using an assignment statement like:


You will get an error message similar to:

script.sh: line 3: MY_VARIABLE: readonly variable

This error message indicates that you are trying to modify a readonly variable and it is not allowed.

Benefits of Using Readonly Variables

The use of readonly variables offers several benefits:

  • Preventing Accidental Modification: By declaring certain variables as readonly, you can prevent accidental modification of their values. This can be particularly useful when working with critical variables that should not be changed once they are set.
  • Code Clarity and Maintainability: Readonly variables make your code more readable and maintainable. By marking certain variables as readonly, you clearly indicate their intended purpose and ensure that other developers or users do not inadvertently modify them.

When to Use Readonly Variables

Readonly variables can be used in various scenarios:

  • Configuration Values: If your script relies on certain configuration values that should not be modified during runtime, you can declare them as readonly.
  • Constants: If your script requires constants that should never change, defining them as readonly ensures their immutability.


The “readonly” attribute only applies to the current shell session. If you open a new shell session or execute the script in a different environment, the variable will no longer be marked as readonly. To ensure the immutability of a variable across multiple sessions, you may need to use other techniques like exporting it as an environment variable or storing it in a file.

In Conclusion

The “readonly” attribute in shell scripting allows you to create variables that cannot be modified once they are set. By using readonly variables, you can prevent accidental modifications, improve code clarity, and ensure the integrity of critical values in your scripts. Remember to use this feature judiciously and consider it whenever you need to define constants or configuration values that should remain unchanged during runtime.

Now that you have a good understanding of what “readonly” means in shell scripting, experiment with it in your own scripts and harness its power to make your code more robust and maintainable.

Discord Server - Web Server - Private Server - DNS Server - Object-Oriented Programming - Scripting - Data Types - Data Structures

Privacy Policy