Bitweises ODER in der shell?

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von clone, 21.06.2004.

  1. clone

    clone Mitglied

    Dabei seit:
    21.05.2004
    Beiträge:
    27
    Zustimmungen:
    0
    Grü,
    kann mir jemand erklären wie ich in der sh zwei variablen bitweise ODER verknüpfen kann??

    Var1=1000
    Var2=0100

    bsp: Ergebnis = Var1 | Var2

    als ergebnis sollte dann 1100 rauskommen!!

    thx im voraus

    mfg clone
     
  2. Anzeige

    Schau dir mal diesen Ratgeber an. Viele Antworten inkl. passender Shell-Befehle!
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. snax

    snax Doppel-As

    Dabei seit:
    31.03.2004
    Beiträge:
    140
    Zustimmungen:
    0
    Ort:
    BaWü
    hm eigentlich sollte das so funzen...

    Code:
    echo $((1000|0100))
    dort kommt aber 1000 heraus X(
     
  4. clone

    clone Mitglied

    Dabei seit:
    21.05.2004
    Beiträge:
    27
    Zustimmungen:
    0
    echo $((1000|0100))

    habe ich schon probiert als ergebniss bekomme 1004?!!
     
  5. snax

    snax Doppel-As

    Dabei seit:
    31.03.2004
    Beiträge:
    140
    Zustimmungen:
    0
    Ort:
    BaWü
    hä? 8o

    versteh ich nicht...
     
  6. snax

    snax Doppel-As

    Dabei seit:
    31.03.2004
    Beiträge:
    140
    Zustimmungen:
    0
    Ort:
    BaWü
    ok habe nochmal folgendes probiert :)

    Code:
    echo "ibase=2; obase=2; $((1000|0100))" | bc
    
    also eingabe und ausgabe, alles auf basis 2, spuckt aber auch wieder 1000 aus.

    Code:
    snax@superpc:~> v1=2#1000 ; v2=2#0100
    snax@superpc:~> echo $((v1|v2))
    12
    
    2# = basis 2. hier spuckt die shell schonmal 12 aus :D das ist ja als dezimales ergebnis schonmal richtig.
     
  7. cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    hi hab leider kein linux zur hand

    aber ich würd sagen

    Code:
    echo -e 'obase=2;12' | bc
    
    funkt sicher

    jetzt must du nur noch statt 12 was mit ((v1|v2)) hineinschrieben
    bzw.
    Code:
    v3=$((v1|v2)) 
    
    und dann irgendwie
    Code:
    echo -e 'obase=2;$v3' | bc
    
    ich kanns leider nicht ausprobiern aber geht sicher irgendwie so
     
  8. snax

    snax Doppel-As

    Dabei seit:
    31.03.2004
    Beiträge:
    140
    Zustimmungen:
    0
    Ort:
    BaWü
    jep so funzt es :)

    Code:
    snax@superpc:~> v1=2#1000 ; v2=2#0100
    snax@superpc:~> v3=$((v1|v2))
    snax@superpc:~> echo -e "obase=2;$v3" | bc
    1100
    
     
  9. #8 clone, 22.06.2004
    Zuletzt bearbeitet: 22.06.2004
    clone

    clone Mitglied

    Dabei seit:
    21.05.2004
    Beiträge:
    27
    Zustimmungen:
    0
    Grü,
    erstmals danke für die rasche antwort.

    Leider funzt die ausgabe in 'dual' noch nicht.


    script:
    ------------------------------------
    IdIndAlt=2#1000
    IdIndNeu=2#0100

    IdInd=$(($IdIndNeu | $IdIndAlt))
    echo -e "obase=2;$IdInd" | bc
    ------------------------------------

    die " hatte ich nur hier vergessen...

    Ausgabe:
    ----------------------------------
    clone: .../script > sh -x neu_csh_probe
    + IdIndAlt=2#1000
    + IdIndNeu=2#0100
    + IdInd=12
    + bc
    + echo -e obase=2;$IdInd
    syntax error on line 1,
    ----------------------------------

    mfg clone
     
  10. snax

    snax Doppel-As

    Dabei seit:
    31.03.2004
    Beiträge:
    140
    Zustimmungen:
    0
    Ort:
    BaWü
    da fehlt ein ' oder "

    Code:
    echo -e 'obase=2;$IdInd | bc
    
    so bitte: echo -e 'obase=2;$IdInd' | bc
    oder eben: echo -e "obase=2;$IdInd" | bc
    
     
  11. clone

    clone Mitglied

    Dabei seit:
    21.05.2004
    Beiträge:
    27
    Zustimmungen:
    0
    sorry hatte ich nur hier vergessen im script stimmen die ",
    aber die ausgabe funzt leider noch immer nicht.

    macht nichts es funktioniert die weiterverarbeitung:
    -------------------------------------------------------
    IdIndAlt=2#1000
    IdIndNeu=2#0100


    IdInd=$(($IdIndNeu | $IdIndAlt))

    AgB=$(($IdInd&2#0100))
    -----------------------------------------------------

    Ausgabe:
    ------------------------------------------
    + IdIndAlt=2#1000
    + IdIndNeu=2#0100
    + IdInd=12
    + AgB=4
    ------------------------------------------

    thx


    mf clone
     
  12. cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    so gehts bei mir
    sript t.sh:
    Code:
    IdIndAlt=2#1000
    IdIndNeu=2#0100
    
    IdInd=$(($IdIndNeu | $IdIndAlt))
    AgB=$(($IdInd&2#0100))
    
    echo -e "obase=2;$IdInd" | bc
    echo -e "obase=2;$AgB" | bc
    
    ausgabe:
    Code:
    $ ./t.sh
    1100
    100
    
     
  13. clone

    clone Mitglied

    Dabei seit:
    21.05.2004
    Beiträge:
    27
    Zustimmungen:
    0
    also so funktionierts auch bei mir aber mit einer fehlermeldung:

    -----------------------------------------
    IdIndAlt=2#1000
    IdIndNeu=2#0100


    IdInd=$(($IdIndNeu | $IdIndAlt))

    AgB=$(($IdInd&2#0100))

    echo -e "ibase=2; obase=2;$IdInd" | bc
    -----------------------------------------

    Ausgabe:
    -----------------------------------------
    + IdIndAlt=2#1000
    + IdIndNeu=2#0100
    + IdInd=12
    + AgB=4
    + bc
    + echo -e ibase=2;obase=2;12
    syntax error on line 1,
    1100
    -----------------------------------------


    mfg clone
     
  14. #13 cremi, 22.06.2004
    Zuletzt bearbeitet: 22.06.2004
    cremi

    cremi Dude

    Dabei seit:
    15.02.2004
    Beiträge:
    329
    Zustimmungen:
    0
    Ort:
    AUT/Ktn
    keine ahnung was da los sein kann
    probier mal
    Code:
    #!/pfad_zum_script/
    in die 1. zeile zu schreiben
    vielleicht hilft das
     
  15. clone

    clone Mitglied

    Dabei seit:
    21.05.2004
    Beiträge:
    27
    Zustimmungen:
    0
    Code:
    #!/pfad_zum_script/
    leider das selbe

    Ausgabe:
    -----------------------------------------
    + IdIndAlt=2#1000
    + IdIndNeu=2#0100
    + IdInd=12
    + AgB=4
    + bc
    + echo -e ibase=2;obase=2;12
    syntax error on line 1,
    1100
    -----------------------------------------

    aber thx

    mfg clone
     
Thema:

Bitweises ODER in der shell?

Die Seite wird geladen...

Bitweises ODER in der shell? - Ähnliche Themen

  1. Funktionssuche in C: Emacs oder Vim?

    Funktionssuche in C: Emacs oder Vim?: Hallo, ich muss mir häufig C-Projekte angucken, und dann suche ich bspw., wo eine aufgerufene Funkion definiert oder deklariert (Header) wird....
  2. OpenSuse bietet aktuelles KDE mit LEAP oder Tumbleweed

    OpenSuse bietet aktuelles KDE mit LEAP oder Tumbleweed: OpenSuse bietet zwei neue Images an, die die neuesten KDE-Pakete aus den Git-Repositories enthalten. Die Images basieren auf den Varianten Leap...
  3. Console oder Terminal auf 80x25 einstellen?

    Console oder Terminal auf 80x25 einstellen?: Ich habe ein Fujitsu TX1310-M1 mit SLES11 SP3 installiert. Ich habe in grub Video=640x480 eingestellt. Mit "stty size", bekomme "30 80" und "echo...
  4. Artikel: Webzugang für Gäste: Per Kiosk-Browser oder Porteus

    Artikel: Webzugang für Gäste: Per Kiosk-Browser oder Porteus: Wer eine allgemein zugängliche Surfstation anbietet, will den Verwaltungsaufwand so gering wie möglich halten. Dieser Beitrag zeigt und gewichtet...
  5. Linux.Encoder: Das Laster der fehlerhaften Kryptografie

    Linux.Encoder: Das Laster der fehlerhaften Kryptografie: Der mittlerweile in der dritten Generation nun vorliegende Ransomware »Linux.Encoder« kann immer noch kaum Schrecken unter Linux verbreiten -...