Archiv verlassen und diese Seite im Standarddesign anzeigen : Bitweises ODER in der shell?
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
hm eigentlich sollte das so funzen...
echo $((1000|0100))
dort kommt aber 1000 heraus X(
echo $((1000|0100))
habe ich schon probiert als ergebniss bekomme 1004?!!
hä? 8o
versteh ich nicht...
ok habe nochmal folgendes probiert :)
echo "ibase=2; obase=2; $((1000|0100))" | bc
also eingabe und ausgabe, alles auf basis 2, spuckt aber auch wieder 1000 aus.
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.
aber ich würd sagen
echo -e 'obase=2;12' | bc
funkt sicher
jetzt must du nur noch statt 12 was mit ((v1|v2)) hineinschrieben
bzw.
v3=$((v1|v2))
und dann irgendwie
echo -e 'obase=2;$v3' | bc
ich kanns leider nicht ausprobiern aber geht sicher irgendwie so
ich kanns leider nicht ausprobiern aber geht sicher irgendwie so
jep so funzt es :)
snax@superpc:~> v1=2#1000 ; v2=2#0100
snax@superpc:~> v3=$((v1|v2))
snax@superpc:~> echo -e "obase=2;$v3" | bc
1100
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
da fehlt ein ' oder "
echo -e 'obase=2;$IdInd | bc
so bitte: echo -e 'obase=2;$IdInd' | bc
oder eben: echo -e "obase=2;$IdInd" | bc
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
so gehts bei mir
sript t.sh:
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:
$ ./t.sh
1100
100
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
keine ahnung was da los sein kann
probier mal
#!/pfad_zum_script/
in die 1. zeile zu schreiben
vielleicht hilft das
#!/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
Powered by vBulletin® Version 4.2.0 Copyright ©2013 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.