Moin.
Ich versuche gerade in einem bash-Skript ein Array der Reihe nach auszulesen. Dafür brauche ich eine Zählervariable. Soweit, so gut. Nur wie inkrementiere ich den Wert dieser Variablen?
MfG
Carsten
Carsten Friede cfriede@wh12.tu-dresden.de schrieb:
Ich versuche gerade in einem bash-Skript ein Array der Reihe nach auszulesen. Dafür brauche ich eine Zählervariable. Soweit, so gut. Nur wie inkrementiere ich den Wert dieser Variablen?
VAR=`expr $VAR + 1`
Tschüß Luca Bertoncello (lucabert@lucabert.de)
On Thu, Jan 22, 2004 at 04:58:00PM +0100, Luca Bertoncello wrote:
Carsten Friede cfriede@wh12.tu-dresden.de schrieb:
wie inkrementiere ich den Wert dieser Variablen?
VAR=`expr $VAR + 1`
Autsch :-)
let VAR=VAR+1
On Thu, 22 Jan 2004 16:55:58 +0100 Carsten Friede cfriede@wh12.tu-dresden.de wrote:
Moin.
Ich versuche gerade in einem bash-Skript ein Array der Reihe nach auszulesen. Dafür brauche ich eine Zählervariable. Soweit, so gut. Nur
wie inkrementiere ich den Wert dieser Variablen?
MfG
Carsten
Oder auch $((i++)).
Hi Stefan,
On Thu, Jan 22, 2004 at 17:31:29 +0100, Stefan Berthold wrote:
Oder auch $((i++)).
Schade, der Thread hat das letzte Mal noch l?nger gedauert und war ziemlich witzig. ;)
Wuss?
bye, Chris "i=$[i+1]" tian
Okay, das Inkrementieren geht soweit. Das Problem ist jetzt die Ersetzung einer Variablen durch ihren Wert innerhalb einer Kommandoersetzung. Bsp.: if('fdisk -s /dev/hda$i' != 0) echo "/dev/hda$i" Es soll nur geprüft werden, ob eine Partition existiert (Rückgabewert des fdisk-Aufrufs ist größer Null), und wenn ja, dann soll er sie auch ausgeben. Die bash meckert immer über unexpected token near echo rum. Wie ersetze ich die Werte nun?
MfG
Carsten
P.S.: Ich weiß, daß die Highticks im Beispiel (beim fdisk) nicht die richtigen sind.
Carsten Friede schrieb:
[...]
Bsp.: if('fdisk -s /dev/hda$i' != 0) echo "/dev/hda$i" Es soll nur geprüft werden, ob eine Partition existiert (Rückgabewert des fdisk-Aufrufs ist größer Null), und wenn ja, dann soll er sie auch ausgeben. Die bash meckert immer über unexpected token near echo rum. Wie ersetze ich die Werte nun?
Ich glaube du meinst:
if [ `fdisk -s /dev/hda$i` != 0 ]; then echo "/dev/hda$i"; fi
Jens
On Thu, Jan 22, 2004 at 06:39:48PM +0100, Jens Lorenz wrote:
Ich glaube du meinst:
if [ `fdisk -s /dev/hda$i` != 0 ]; then echo "/dev/hda$i"; fi
nein. Wenn, dann müsste man erst fdisk ausführen und dann "if [ $? != 0 ]".
oder
fdisk -s /dev/hda$i &>/dev/null || echo "/dev/hda$i"
Stefan Seyfried wrote:
Ich glaube du meinst:
if [ `fdisk -s /dev/hda$i` != 0 ]; then echo "/dev/hda$i"; fi
nein. Wenn, dann müsste man erst fdisk ausführen und dann "if [ $? != 0 ]".
oder
fdisk -s /dev/hda$i &>/dev/null || echo "/dev/hda$i"
Da hast du Recht. Ich habe Ausgabe und Return-Code verwechselt.
Jens
On 22.01.04 Carsten Friede (cfriede@wh12.tu-dresden.de) wrote:
Moin,
Bsp.: if('fdisk -s /dev/hda$i' != 0) echo "/dev/hda$i" Es soll nur geprüft werden, ob eine Partition existiert (Rückgabewert des fdisk-Aufrufs ist größer Null), und wenn ja, dann soll er sie auch ausgeben. Die bash meckert immer über unexpected token near echo rum.
for ((i=0; i<=255; i++)); do a=`/sbin/fdisk -s /dev/hda$i 2> /dev/null` && echo $a; done
Sauer, weil ich 'ne fertige Lösung präsentiere?
H.
Hi Hilmar,
On Thu, Jan 22, 2004 at 18:43:53 +0100, Hilmar Preusse wrote:
for ((i=0; i<=255; i++)); do a=`/sbin/fdisk -s /dev/hda$i 2> /dev/null` && echo $a; done
Spricht eigentlich was dagegen, anstelle von fdisk einfach die Ausgabe von /proc/partitions zu parsen?
$ cat /proc/partitions major minor #blocks name
3 0 39078144 hda 3 1 3148708 hda1 3 2 1 hda2 3 5 530113 hda5 3 6 10490413 hda6 3 7 10490413 hda7 3 8 14418306 hda8
Okay, die Blockanzahl von hda2 muss man gesondert behandeln, weil es die erweiterte Partition ist, die hda5-8 enthaelt. Dafuer fallen aber praktischerweise die Major/Minor-Nummer der Devices mit ab.
Frage an Carsten: Wozu brauchst Du die Partitionsgroessen eigentlich?
bye, Chris
Christian Perle wrote:
Hi Hilmar,
On Thu, Jan 22, 2004 at 18:43:53 +0100, Hilmar Preusse wrote:
for ((i=0; i<=255; i++)); do a=`/sbin/fdisk -s /dev/hda$i 2> /dev/null` && echo $a; done
Spricht eigentlich was dagegen, anstelle von fdisk einfach die Ausgabe von /proc/partitions zu parsen?
[...]
Frage an Carsten: Wozu brauchst Du die Partitionsgroessen eigentlich?
Ich bin dabei mir ein Skript zu bauen, mit dem ich quasi interaktiv die entsprechenden Einträge für neue Mountpoints in die fstab und dann ins Mountmenü meines fvwm einbinden kann. Ich finde es einfach sehr nervig jedesmal den Editor anzuwerfen und dann wieder rumzutippern. Lieber gebe ich die entsprechende Partition und den mountpoint an und fertig.
MfG
Carsten
lug-dd@mailman.schlittermann.de