Bash changer la valeur d'une variable

Résolu
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
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?
A voir également:

12 réponses

jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Salut,

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.
;-((
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
:(((
merci... quand meme
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

à 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
0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
comment je dois faire pour l'exporter ds un shell fils stp ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

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

0
mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
merci
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
En 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]$
;-))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

tu pourras écrire dans la FAQ?!
tu sais que je suis paresseux ;-)
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896 > lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
 
En 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 ;-)))
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Je 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 :-((
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Bon 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 ;-)
0
lami20j Messages postés 21331 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
13 peut être puisque j'ai fait un retour en arrière et l'astuce sera en double ?!!!!!
0
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 896
 
Pas grave on demandera la suppression et une punition ;-DD
0