Variable mit const?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von ploki, 27.08.2009.

  1. ploki

    ploki Jungspund

    Dabei seit:
    31.03.2009
    Beiträge:
    16
    Zustimmungen:
    0
    Hallo,

    ich möchte in meinem Script am Anfang eine Variable setzen und diese soll später im Script nicht überschrieben werden können, z.B.:

    Code:
    Var=2
    ...(später)
    Var=3
    echo $Var --> 2
    Gibt es sowas wie const?

    Grüße, ploki
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 bytepool, 27.08.2009
    Zuletzt bearbeitet: 27.08.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    du suchst
    Code:
    declare -r VAR=1
    
    Das -r steht fuer read-only, und declare ist ein bash-builtin.

    mfg,
    bytepool
     
  4. ploki

    ploki Jungspund

    Dabei seit:
    31.03.2009
    Beiträge:
    16
    Zustimmungen:
    0
    danke coole sache :)
     
  5. ploki

    ploki Jungspund

    Dabei seit:
    31.03.2009
    Beiträge:
    16
    Zustimmungen:
    0
    Hi,

    das:
    Code:
    declare -r VAR=1
    hat damals wunderbar funktioniert, doch komischwerweise geht es jetzt nicht mehr. Kann das evtl an einem Debian Update von 3 auf 5 liegen oder hat es vermutlich nie richtig funktioniert?

    Ich führe folgende Zeilen aus:
    Code:
    declare -r VAR=1
    declare -r HAR=1
    source eine.cfg
    In "eine.cfg" steht folgendes drinnen:
    Code:
    ...
    VAR=0
    echo "das war VAR"
    HAR=0
    echo "das war HAR"
    XAR=0
    ...
    
    und die shell liefert folgenden Fehler:
    ./eine.cfg: line 4: VAR: readonly variable
    das war VAR
    ./eine.cfg: line 6: HAR: readonly variable

    was ja auch verständlich ist, da die Variable "VAR" und "HAR" ja schon angelegt wurden und nicht mehr überschrieben werden können.
    Aber das Problem ist, dass er nur "das war VAR" ausgibt, aber ab "HAR" gibt er nichts mehr aus, d.h., dass "source" anscheinend beim 2.mal abbricht?!

    Kann man das irgendwie lösen? Oder kann es sein, dass es davor (vor dem Debianupdate) überhaupt funktioniert hat?
     
  6. #5 bytepool, 16.12.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    ich kann das Problem nicht nachvollziehen.

    Folgendes funktioniert unter Debian Squeeze mit GNU bash, version 4.0.28:

    Code:
    $ cat foo.sh
    #!/bin/bash
    
    declare -r Var=1
    declare -r Har=2
    
    source bar.txt
    
    Code:
    $ cat bar.txt
    
    echo vor Var
    Var=10
    echo nach Var
    
    echo vor Har
    Har=20
    echo nach Har
    
    echo vor Foo
    Foo=10
    echo nach Foo
    
    Code:
    $ ./foo.sh
    vor Var
    bar.txt: line 3: Var: readonly variable
    nach Var
    vor Har
    bar.txt: line 7: Har: readonly variable
    nach Har
    vor Foo
    nach Foo
    
    mfg,
    bytepool
     
  7. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  8. ploki

    ploki Jungspund

    Dabei seit:
    31.03.2009
    Beiträge:
    16
    Zustimmungen:
    0
    Hi,
    ich versteh es selber nicht. Ich habe mal den gleichen Code von dir eingegeben und meine Console gibt aber nur folgendes aus:

    Code:
    vor Var
    ./bar.txt: line 2: Var: readonly variable
    Dann ist Ende... woran kann das liegen??

    edit: ich habe folgende Version: GNU bash, version 3.2.39(1)-release
    Kann es daran liegen?
     
  9. #7 bytepool, 18.12.2009
    bytepool

    bytepool Code Monkey

    Dabei seit:
    12.07.2003
    Beiträge:
    791
    Zustimmungen:
    0
    Ort:
    /home/sweden/göteborg
    Hi,

    jup, unter Lenny mit GNU bash, version 3.2.39 bekomm ich das selbe Ergebnis, wird also an einer Veraenderung des declare bash-builtins liegen. Ich wuerde mal die Changelogs danach durchsuchen, und versuchen dahinter zu kommen was veraendert wurde.
    Ich hab selbst leider keine Zeit der Sache auf den Grund zu gehen.

    mfg,
    bytepool
     
Thema:

Variable mit const?

Die Seite wird geladen...

Variable mit const? - Ähnliche Themen

  1. Linux 4.5 will UEFI-Variablen besser schützen

    Linux 4.5 will UEFI-Variablen besser schützen: Das Löschen bestimmter UEFI-Variablen kann manche Rechner nicht mehr startbar machen. Das kommende Linux 4.5 ergreift Maßnahmen dagegen, die im...
  2. Wie komme ich an den Inhalt des Inhalts einer Variable?

    Wie komme ich an den Inhalt des Inhalts einer Variable?: Hallo Zusammen, ich möchte meine Buildumgebung vereinfachen und besser zu automatisieren. Ein Skript schreibt Pfade in die env und diese...
  3. Textdatei zeilenweise in durchnummerierte Variablen schreiben

    Textdatei zeilenweise in durchnummerierte Variablen schreiben: Hi Leute, ich versuche folgendes Problem zu lösen. Ich möchte eine Textdatei einlesen und den Inhalt jeder Zeile in immer eine neue Variable...
  4. mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern

    mysql Select Abfrageergebnis in unterschiedlichen Variablen sichern: Hallo zusammen, es geht um folgenden Teil meiner .sh-Datei: NumberCheck=`mysql $SQL_ARGS "SELECT lkw, Firma FROM adb_group WHERE...
  5. Teil einer Variablen auslesen und in neue Variable schreiben

    Teil einer Variablen auslesen und in neue Variable schreiben: Hallo, ist für Euch bestimmt ganz einfach, aber trotz googlen komme ich nicht auf eine Lösung. In Variable x habe ich stehen: xy,ab Nun möchte...