En este tutorial, aprenderemos sobre el comando ‘solo lectura’.
Con el comando de solo lectura, puede asignar un valor particular a una variable que no puede cambiarse ni modificarse mediante asignaciones posteriores ni anularse.
Sintaxis:
readonly name[=value]
readonly [-aAf] [name[=value]
Opciones más utilizadas:
-p : It prints all the defined readonly variables
-f : It is used when you want to make a function as readonly
Para obtener más ayuda con su uso, puede usar el comando:
readonly --help
Ejemplo del uso:
- Navegue a la terminal y cree un archivo con el nombre: «gfg.sh» usando el comando
touch gfg.sh
- Abra el editor vim usando el comando:
vim gfg.sh
- Ahora, para ir al modo de inserción, presione ‘i’ en el teclado.
Ahora comencemos a escribir un script de shell en el que primero asignaremos un valor a una variable, la haremos de solo lectura y luego intentaremos cambiar su valor nuevamente.
#! /bin/bash echo "Learning shell commands" # defining a variable "myvar" myvar="geeksforgeeks" echo " The value variable 'myvar' currently is: $myvar" # making that variable as read only readonly myvar echo "Hold on! Trying to change the value of 'myvar'....." # trying to change the variable myvar="gfg"
- Ahora, para guardarlo, presione Esc para salir del modo de inserción, luego escriba ‘:w’ y se guardará el script. Después de guardar, la última línea del archivo se verá así:
- Ahora simplemente salga del editor escribiendo «:q».
- Pruebe el script usando el comando:
bash gfg.sh
Después de ejecutar el script, puede ver que obtendrá un error en la línea 10, donde intentamos cambiar el valor de la variable.
Además, también puede usar el indicador -r junto con el comando declare para establecer una variable como de solo lectura. Para obtener más información sobre el comando ‘declare’, consulte este artículo: comando declare en Linux con ejemplos
Ahora declaremos algunas funciones de solo lectura:
Si ahora ejecutará el siguiente comando:
readonly -f
Mostrará todas las funciones que están marcadas como de solo lectura.
Del mismo modo, si ejecuta el comando:
readonly or readonly -p
Luego, enumerará todas las variables con sus valores que se definen como de solo lectura (esto incluye las variables predeterminadas de solo lectura)
Desactivar o modificar una variable de solo lectura
En el script de ejemplo ‘gfg.sh’ anterior, hemos visto que el valor de una variable marcada como de solo lectura no se puede modificar.
Además, el valor de la variable de solo lectura no se puede desarmar usando el comando ‘desarmar’.
Establecer una variable como de solo lectura lo ayuda a proteger su variable de cualquier modificación adicional y mejora la legibilidad del código. Tenga en cuenta que cuando la variable marcada como de solo lectura en una sesión se exporta en otra sesión, se puede cambiar su valor.
Cuando intentamos modificar el valor de la variable «myvar» en el shell actual (Shell con PID como: 1618) dio un error. Pero cuando exportamos esta variable a otra sesión (PID: 1624), su valor fue cambiado o modificado con éxito.
Publicación traducida automáticamente
Artículo escrito por tanishkaashi567 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA