Únete
a la comunidad
Inscríbete
Haz una pregunta »

Modificar una variable de sólo lectura

Mayo 2013


Método 1


Una variable declarada como de sólo lectura no puede ser modificada en el proceso en curso. Sin embargo, si la variable es exportada a un shell hijo, podrá ser modificada.

#!/bin/bash

if [ "$PROC_PID" != "$PPID" ]; then
  export PROC_PID=$$
  var="mype"
  echo "initial $var"

  declare -r var

  export var
  $0 & # proceso hijo
else
  echo "antes $var"
  var="lami20j"
  echo "despues $var"
fi

Método 2


Otra método consiste en utilizar una “indirección” o “referencia indirecta ” (ver “man bash” para mayor información).

# Declaración de variable de solo lectura
$ readonly Z="Y"
$ echo $Z
Y

# Prueba de eliminacion
$ unset Z
-l: unset: Z: cannot unset: readonly variable

# Prueba de reemplazo
$ Z=W
-l: Z: readonly variable

# Declaracion de una variable indirecta
$ Y=W
$ echo "$Y"
W

# Referencia indirecta de la variable
$ echo "${!Z}"
W

$

Véase también

Comunidad de asistencia y consejos.

Modifier une variable en lecture seule
Modifier une variable en lecture seule
Por lami20j el 16 de noviembre de 2007
Modificar uma  variável em leitura somente
Modificar uma variável em leitura somente
Por ninha25 el 19 de agosto de 2011
El artículo original fue escrito por lami20j. Traducido por Carlos-vialfa.
Este documento intitulado « Modificar una variable de sólo lectura » de Kioskea (es.kioskea.net) esta puesto a diposición bajo la licencia Creative Commons. Puede copiar, modificar bajo las condiciones puestas por la licencia, siempre que esta nota sea visible.
Recibe nuestro newsletter

salud.kioskea.net

Cambiar la contraseña utilizando un script
Bash - Mostrar un archivo sin líneas de comentarios