• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

"Kollabierte" Variablen in Bash ?

Servus,

bin gerade am bash-scripting-basteln-und-lernen ;-) ...

Hab folgenden Ausschnitt-Code, der jedoch wegen der expandierenden Variable(n) Problemchen mir hier verursacht ...

Code:
hd=1
echo "$hd. Festplatte         :       "
  echo "        $(df -h | grep "Dateisystem")"
  HD_TEST=$(df -h /dev/hda$hd | grep "/dev")
  while [ $HD_TEST -n ]
  do
   echo "       $HD_TEST"
   hd=$((hd))+1
   HD_TEST=$(df -h /dev/hda$hd | grep "/dev")
  done

Also,

1. Kommt mir immer die Fehlermeldung, dass in der WHILE-Zeile "too many arguments" vorliegen würden ... klar, der liest ja die Var. HD_TEST als mehrere Variablen.
Dazu die Frage: Wie "kollabiere" ich das zu einer einzigen Variable ?

2. Der Zähler hd+1 funktioniert auch nicht. Er zählt zwar hoch, aber hinter der Zahl schreibt er immer "+1" dazu :-(

Kann mir hierbei bitte jemand mal unter die Ärmchen greifen ?
Wäre dankbar ;-) ... Google hat nix gescheites rausgespuckt :-(

Gruß
Worker
 
Guckstu :) :

Code:
#!/bin/bash

hd=1

echo "$hd. Festplatte:"
echo -e "\t$(df -h | grep 'Dateisystem')"

HD_TEST=$(df -h /dev/hda$hd | grep "/dev")

while [ -e /dev/hda$hd ]
do
    HD_TEST=$(df -h /dev/hda$hd | grep "/dev")
    echo -e "\t$HD_TEST"
    let "hd += 1"
    # Oder: hd=$(expr $hd + 1)
done

Viele Grüße
 
Hi,

i guck :shock:

Code:
while [ -e /dev/hda$hd ]

... manchmal sieht man eben den Wald vor lauter Bäume nicht ;-)

Code:
let "hd += 1"
    # Oder: hd=$(expr $hd + 1)

Aha, siehste dazu war kein wort bei Google zu finden :-(

Jedenfalls, a big THX. :)

Ciao

PS: Wobei das mit der expandierenden/kollabierenden Variable mich schon interessieren würde, ob sowas machbar ist (?).
 
Oben