Bash changer la valeur d'une variable
Résolu
Bonjour,
en faite j'ai declaré une variable en lecture seule et la je voudrais changer la valeur de cette variable mais j'arrive pas a enlever le mode de lecture
quelqu'un pourrait me dire comment on fais svp?
en faite j'ai declaré une variable en lecture seule et la je voudrais changer la valeur de cette variable mais j'arrive pas a enlever le mode de lecture
quelqu'un pourrait me dire comment on fais svp?
12 réponses
-
ModérateurPas grave on demandera la suppression et une punition ;-DD
-
Modérateur13 peut être puisque j'ai fait un retour en arrière et l'astuce sera en double ?!!!!!
-
ModérateurBon je vois qu'il y a 13 astuces de déclarer mais toujours pas de traces de ton intervention ;-((
Heureusement qu'elle ne faisait pas 10 pages ;-DD
Y'a quelques problèmes actuellement à ce que j'ai vu... faut attendre que ça se tasse ;-)
-
Modérateur
-
ModérateurJe viens de l'écrire, je vois que dans BASH il y a 12 astuces mais celle que je viens d'écrire n'apparaît pas :-((
-
ModérateurEn moins joli que la solution à "lami20j", mais tout aussi efficace :
[tmpfs]$ readonly Z="Y" [tmpfs]$ echo $Z Y [tmpfs]$ unset Z -l: unset: Z: cannot unset: readonly variable [tmpfs]$ Z=W -l: Z: readonly variable [tmpfs]$ Y=W [tmpfs]$ echo "$Y" W [tmpfs]$ echo "${!Z}" W [tmpfs]$;-))
-
-
Modérateur@lami20jEn général c'est celui qui dit qui fait ! Merci ;-))
PS. Et comme t'as donné la 1ère solution, tu colles ta tienne juste avant ma mienne ;-)))
-
-
merci
-
ModérateurSalut,
lami20j@debian:~/trash$ cat ccm.sh #!/bin/bash if [ "$PROC_PID" != "$PPID" ]; then export PROC_PID=$$ var="mype" echo "initial $var" declare -r var export var $0 & # processus fils else echo "avant $var" var="lami20j" echo "après $var" fi lami20j@debian:~/trash$ ./ccm.sh initial mype avant mype après lami20j
-
comment je dois faire pour l'exporter ds un shell fils stp ?
-
ModérateurSalut,
à savoir que la variable ne peux pas être modifier dans le processus en cours.
en revanche si la variable est exporté dans un shell fils elle pourra être modifiée -
:(((
merci... quand meme -
ModérateurSalut,
Extrait du man bash :readonly [-afp] [nom ...] Les noms indiqués reçoivent un attribut lecture-seule. Les valeurs affectées à ces noms ne pourront plus être modifiées.;-((