mathe - rechnen und zählen auf der (ba)sh

sysdef

sysdef

variable konstante
hi, nachdem der bg-programm-exit-code-abfang-thread immer mathematischer wird... (hat ja keiner mit "gerechnet" *gg*)
ich hoffe es kommen noch andere lösungen und rechenarten dazu.

hehejo schrieb:
juhu, endlich weiß ich wie ich eine bash-Zählscheife programmiere:
Code:
 for i in $(seq 0 9)
  do
   echo $i
  done
systemdefender schrieb:
oder auch ...
Code:
i=0
while [ $i -lt 9 ]
 do
  echo $i
  i=`expr $i + 1`
 done
oops, jetzt hab noch das mit dem rechnen auf der bash verraten :)

wenn du von 00 bis 10 zählen willst, oder von 000 bis 100 ist seq besser, siehe option -w
Cybermarc schrieb:
Und fürs Incrementieren oder Dekrementieren und sonstigem rechnen in der bash gibts let, also quasi
Code:
a=0
b=0
let a++;
let a--
let a=b + 1

einfach nur zählen kann man auch noch mit
Code:
echo "while (i<10){i++}"|bc

gruss, sys.

edit: hab was gefunden, für jeden, der sehnsüchtig auf etwas wartet. -> http://linide.sourceforge.net/d0086.txt
 
Zuletzt bearbeitet:
btw: let ist nicht auf bash begrenzt.. gibts zumindest auch für ksh, sh, zsh

addieren, subtrahieren, multiplizieren, dividieren, etc... geht auch so (bei bash, sh, zsh, ksh) - es ist dem `expr $i ...` vorzuziehen, da hier keine eigene subshell gestartet wird:
Code:
i=5
echo $((i*5)) # ausgabe: 25
i=$((i+1)) # i ist nun 6
zählschleifen, etc... ('seq' ist nicht auf jedem system vorhanden)
Code:
for i in {0,1,2,3,4,5,6,7,8,9}
oder:
for i in 0{0,1,2,3,4,5,6,7,8,9}{0,1,2,3,4,5,6,7,8,9}
beim ersten hat i die werte 0 bis 9, beim zweiten 000 bis 099.
bei zsh gibt es noch diese möglichkeit (beispiel für 000 bis 999):
Code:
for i in {0-9}{0-9}{0-9}
das geht auch für nicht-nummerische dinge, z.b.:
Code:
for char in {a,b,y,c,d,q,2}
hintergrund ist, dass for die werte bei einem zeichen aus $IFS trennt und über diese werte iteriert.
{a,b,c} ist nichts anderes als "a b c", und das leerzeichen ist in $IFS enthalten.
sinnvoll wird es z.b. bei dateinamen:
foobar{a,b,c} wird zu "foobara foobarb foobarc" - bei größeren sachen wie z.b.
foobar{0-9}{0-9} wird es noch deutlicher, hier sind es dann 100 verschiedene werte (foobar00 bis foobar99)

auf bald
oenone
 

Ähnliche Themen

Verschlüsseltes Backup-Script mit rsync

Summe von Zahlen in einer Zeilen bilden

skript zum löschen doppelter dateien

Problem mit HSPA+ Modem Huawei E353 - Installation unmöglich?

(Bash) Führende Nullen vor Zahlen hängen

Zurück
Oben