PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : rechnen



18-03-2000, 20:04
hallo,

wie kann ich in einer shell zwei variablen addieren bzw. subtrahieren? ich moechte in einem script einen anfangswert (z.b. 12) und einen endwert (z.b. 457) eingeben. danach soll eine schleife durchlaufen werden, die mit folgenden variablen gefuellt werden soll:
12-100; 101-200; 201-300; 301-400; 401-457.
die zahlen stellen seitenzahlen dar, die im dateinamen enthalten sind. die schleife ruft dann immer die entsprechende datei auf, und startet damit die verarbeitung an.

bye, bye

beelzebub

Ilja
18-03-2000, 23:40
hi.

$((a-b))
damit sollte es klappen.

gruss
ilja

19-03-2000, 12:12
hi,

das will aber nicht wirklich funzen - heul. das kann doch gar nicht sooo schwer sein.
ich habe folgende variablen definiert: EING1=20 EING2=30. wie kann ich nun die variable AUSGABE=EING2-EING1 berechnen. der tip mit $((a-b)) hat leider nicht hingehauen.
bitte helft mir...

beelze

Ilja
19-03-2000, 15:09
ok. machen wir es anders.

unter einer sh-shell:

AUSGABE=`expr $EING2 - $EING1`

habs noch nicht unter einer anderen schell probiert. müsste aber auch funzen.

gruss
ilja

19-03-2000, 17:16
danke ilja http://www.linuxforen.de/ubb/smile.gif
dein tip hat mir weitergeholfen!
jetzt funzt mein script einwandfrei (auch unter csh)
vielen dank

beelze

Christoph
20-03-2000, 08:33
Wenn du in deinem Script viel rechnest, solltest du die Korn-Shell (ksh) nehmen.
Die kennt nämlich integer-Variablen und muss zum berechnen deshalb kein externes Programm (expr) aufrufen. Such mal nach "typeset" in der Manpage der ksh.

Zum Programmieren ist die Korn-Shell auch sonst besser als sh oder bash; z.B. kennt sie Sub-String Funktionen.

Christoph

robert
20-03-2000, 14:11
Noch ein kleiner Hinweise!

Je nach Shell ist es anders.

x=`expr $A - $B`

x=$((A - B))

x=$[A - B]

let "x = a + b" oder ((x = a + b))

Letzteres gilt für die Korn-Shell.

Gruß

Robert


[Diese Nachricht wurde von robert am 20. März 2000 editiert.]