Rechnen mit bc
Kiffer
- programmiertechnik
0 Kiffer0 Jens Holzkämper0 Kiffer
Hallo,
ich möchte shell Kommandos wie
echo vier geteilt durch drei gleich $(./division.sh 4 3).
ermöglichen. Das Programm ./division.sh soll also in diesem
Beispiel Paramter_1 durch Parameter_2 dividieren. Da ich keine
Möglichkeit gefunden habe, dem bc die beiden Parameter zu
übergeben, habe ich mir folgende Krücke einfallen lassen.
Listing von ./division.sh:
#!/bin/sh
/usr/bin/env bc -l <<my_delimiter
scale=2
$1/$2
my_delimiter
Geht das einfacher? Ohne Here-Dokument? Oder entspricht das
gängiger Programmiertechnik mit bc?
Danke, der Kiffer
Habe ich mir den falschen Nickname zugelegt?
Hallo,
Habe ich mir den falschen Nickname zugelegt?
naja, zumindest etwas zweifelhaft. ;-)
Das hätte mich aber nicht abgeschreckt; ich habe mich deshalb rausgehalten, weil ich *keinen* Schimmer habe, was du mit "bc" meinst (und nach einem zweibuchstabigen Begriff ohne weitere Anhaltspunkte zu googeln, ist auch ziemlich sinnlos).
So long,
Martin
Tach,
Das hätte mich aber nicht abgeschreckt; ich habe mich deshalb rausgehalten, weil ich *keinen* Schimmer habe, was du mit "bc" meinst (und nach einem zweibuchstabigen Begriff ohne weitere Anhaltspunkte zu googeln, ist auch ziemlich sinnlos).
http://en.wikipedia.org/wiki/Bc_programming_language
mfg
Woodfighter
Hallo auch,
Hallo,
Habe ich mir den falschen Nickname zugelegt?
naja, zumindest etwas zweifelhaft. ;-)
Das hätte mich aber nicht abgeschreckt; ich habe mich deshalb rausgehalten, weil ich *keinen* Schimmer habe, was du mit "bc" meinst (und nach einem zweibuchstabigen Begriff ohne weitere Anhaltspunkte zu googeln, ist auch ziemlich sinnlos).So long,
Martin
Schön, das du dich nicht abschrecken lässt!!! In Unix gibts ne Menge
"Zweibuchstabenprogramme. Beispiele:
bc - basic calcualtor (je nach Umgebung sind Rechnungen auf merhere
tausend Nachkommastellen möglich)
dc - desk calcualtor (umgekehrten polnischen Notation)
sh - die Shell
ed - editor
vi - noch ein editor (für "visual")
dd - disk dump
und und und .....
Sorry wenn ich dich verwirrt habe. War keine Absicht.
Noch ein kleiner Hinweis: wenn man nach der Bedeutung vom Abk.
sucht hat sich nach meiner Meinung wikipedia bewährt. Nach
wenigen Sekunden hat mans meist. Googeln hilft da wenig.
Danke trotzdem - und ich hoffe du weisst jetzt etwas mehr über die
Programme auf deinem Rechner (soll nicht Arrogant gemeint sein!).
Und Tschüß, der Kiffer
Hi,
Hallo,
[...]
So long,
Martin
für mich ohne TOFU, besten Dank. Fürs Forum bitte auch.
Schön, das du dich nicht abschrecken lässt!!!
;-)
In Unix gibts ne Menge "Zweibuchstabenprogramme.
Ich weiß.
bc - basic calcualtor (je nach Umgebung sind Rechnungen auf merhere tausend Nachkommastellen möglich)
dc - desk calcualtor (umgekehrten polnischen Notation)
sh - die Shell
ed - editor
vi - noch ein editor (für "visual")
dd - disk dump
Von den genannten sind mir sh, ed, vi und ganz besonders dd bekannt. Aber mit bc und dc hatte ich noch keinen Vertrag.
Noch ein kleiner Hinweis: wenn man nach der Bedeutung vom Abk. sucht hat sich nach meiner Meinung wikipedia bewährt. Nach wenigen Sekunden hat mans meist.
Manchmal.
Danke trotzdem - und ich hoffe du weisst jetzt etwas mehr über die
Programme auf deinem Rechner (soll nicht Arrogant gemeint sein!).
Auf *meinem* Rechner? Nö. Auf meinem Rechner habe ich weder bc noch dc. Auf den Windows-Büchsen sowieso nicht; auf Ubuntu und Gentoo AFAIK auch nicht.
Ciao,
Martin
Tach,
Habe ich mir den falschen Nickname zugelegt?
nö, du fragst bloss in einem HTML-(und andere Webtechniken)-Forum nach einem recht speziellen Kommandozeilentool, und das auch noch am Wochenende.
mfg
Woodfighter
Tach,
#!/bin/sh
/usr/bin/env bc -l <<my_delimiter
scale=2
$1/$2
my_delimiter
ich komme mir zwar vor wie bei "useless use of cat", aber:
#!/bin/bash
echo "scale=2; "$1"/"$2";" | bc
wäre schonmal kürzer.
mfg
Woodfighter
Tach,
Tach auch
...
ich komme mir zwar vor wie bei "useless use of cat", aber:
#!/bin/bash
echo "scale=2; "$1"/"$2";" | bc
> wäre schonmal kürzer.
>
> mfg
> Woodfighter
Der Code in dem Beispiel war mit absicht einfach gehalten. Im Kern gehts
darum, aus einer Shell Umgebung ein Komplexers bc Progamm aufzurufen
und dem bc Programm Variablen zu übergeben.
Wenn das bc Programm komplexer wird, ist "echo" nicht mehr praktikabel.
Und wenn man das bc Programm in einem File hät und mit cat nach bc piped
dreigt man die Variablen nicht rein (oder nur sehr scwer).
Meine Lösung finde ich auch nicht schön - deshalb ja meine Anfrage. Ich
habe keine Idee, wie sich die Entwickler von bc das vorgestellt haben.
Danke trotzdem für deine Antwort!!! der Kiffer