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 diese Kategorie an. Dort findest du bestimmt etwas.
    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. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  15. #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
     
  16. 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. FTP/FTPS ohne ip_conntrack_ftp oder nf_conntrack_ftp mit iptables

    FTP/FTPS ohne ip_conntrack_ftp oder nf_conntrack_ftp mit iptables: Guten Tag, kennt jemand von euch eine Möglichkeit wie ich vsftpd nutzen kann zusammen mit einer Firewall ohne die im Betreff angegebenen...
  2. HAIKU ?? Oder heißt das ZevenOS?

    HAIKU ?? Oder heißt das ZevenOS?: Hallo, damals hieß es BeOS, dann HAIKU und seit langem ZevenOS? HAIKU war schnell beimhochfahren und runterfahren. Die Optik war interessant....
  3. IT-Systemadministrator/in in Teilzeit oder freiberuflich

    IT-Systemadministrator/in in Teilzeit oder freiberuflich: Wir suchen ab sofort in Teilzeit (20 Std./Woche) oder freiberuflich eine/n IT-Systemadministrator/in. Ihr Aufgabengebiet: Administration,...
  4. 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....
  5. 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...