Bash changer la valeur d'une variable

Résolu
mype Messages postés 2459 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?

12 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
  2. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    :(((
    merci... quand meme
    0
  3. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  4. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    comment je dois faire pour l'exporter ds un shell fils stp ?
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    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
  7. mype Messages postés 2459 Date d'inscription   Statut Membre Dernière intervention   437
     
    merci
    0
  8. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    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
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      Salut,

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