ubuntuusers.de

Bash Script: Variable erhöhen

Status: Ungelöst | Ubuntu-Version: Ubuntu
Antworten |

Johannes_G

Anmeldungsdatum:
12. April 2006

Beiträge: 231

Hallo,

ich will ein einem Bash Script eine variable um 1 erhöhen (in PHP/C also das: i++; )

Weiß jemand wie das geht?

Viele Grüße,
JOhannes

Chrissss Team-Icon

Anmeldungsdatum:
31. August 2005

Beiträge: 37971

i=$i+1


Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4668

Wohnort: Berlin

Chrissss hat geschrieben:

i=$i+1


Nicht wirklich.

marc@s8n:~$ i=1
marc@s8n:~$ i=$i+1
marc@s8n:~$ echo $i
1+1
marc@s8n:~$ i=1
marc@s8n:~$ i=$(( $i + 1 ))
marc@s8n:~$ echo $i
2

haraldkl

Avatar von haraldkl

Anmeldungsdatum:
21. Juli 2005

Beiträge: 1903

Wohnort: Würselen

Alternativ kannst du auch einen Typen vergeben und dann doch wieder Chrisss' Vorschlag benutzen:

typeset -i i=0
i=$i+1


😉

d1rk

Anmeldungsdatum:
5. April 2006

Beiträge: 2420

Johannes G. hat geschrieben:

ich will ein einem Bash Script eine variable um 1 erhöhen

var=`expr $var + 1`

ktklin

Avatar von ktklin

Anmeldungsdatum:
20. Mai 2006

Beiträge: 206

Wohnort: Nürnberg

Hi,

I=1
I=expr $I + 1
echo $I

hth

TuBaW

Anmeldungsdatum:
23. August 2008

Beiträge: 7

In der Zwischenzeit gibt es neuere Versionen der verschiedenen Shells, die bash versteht auch

1
2
3
4
5
6
ZAHL=1
while [ ${ZAHL} -lt 11 ]
 do
  echo ${ZAHL}
  ((ZAHL++))
 done

Ich weiß allerdings nicht, wann „((ZAHL++))” eingeführt wurde, dieser Thread ist ja schon bald zwanzig Jahre alt.

Bleibt gesund.

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1241

TuBaW schrieb:

Ich weiß allerdings nicht, wann „((ZAHL++))” eingeführt wurde, dieser Thread ist ja schon bald zwanzig Jahre alt.

Ääh... Was willst du uns damit sagen? Wie du ein paar Zeilen höher beim Post von Marc_BlackJack_Rintsch gesehen hast, war dies bereits am 17.10.2006 beschrieben worden.

Mylin

Avatar von Mylin

Anmeldungsdatum:
23. Juli 2024

Beiträge: 270

TuBaW schrieb:

dieser Thread ist ja schon bald zwanzig Jahre alt.

Genau, und bash nicht mehr unbedingt die Shell der Wahl ist.

~> set counter 5 | set counter (math $counter + 1) | echo $counter

Marc_BlackJack_Rintsch Team-Icon

Ehemalige
Avatar von Marc_BlackJack_Rintsch

Anmeldungsdatum:
16. Juni 2006

Beiträge: 4668

Wohnort: Berlin

@shiro Nee, den ++-Operator innerhalb von ((…)) hatte ich damals tatsächlich nicht beschrieben.

1
2
3
4
bj@s8n:~$ A=41
bj@s8n:~$ ((A++))
bj@s8n:~$ echo $A
42

shiro Team-Icon

Supporter

Anmeldungsdatum:
20. Juli 2020

Beiträge: 1241

Nee, den ++-Operator innerhalb von ((…)) hatte ich damals tatsächlich nicht beschrieben.

Richtig, aber nun wirst du wohl sehr genau.

In den NEWS der Bash release notes kann man unter dem Abschnitt: "new features added to bash-2.04 since the release of bash-2.03" nachlesen:

  • "f. There are several new arithmetic operators: id++, id-- (variable post-increment/decrement), ++id, --id (variable pre-increment/decrement), expr1 , expr2 (comma operator)."

Dies war wohlgemerkt in Version 2. Bash Version 3 wurde released on 27 July 2004. Allerdings war in 2006 mit der Distribution Ubuntu 4.10 (Warty Warthog) noch "bash_2.05b" ausgeliefert worden. Da der Thread aber im Okt.2006 geschrieben wurde, war demnach das "pre/post-increment/decrement" im Bash 2.05 dieser Ubuntu Distro verfügbar.

Antworten |