E
exponator
Grünschnabel
Hallo,
Bin Neuling was der Shellprogrammierung anbelangt.
Gibt es eine Möglichkeit in einem Bash-Script einen Goto-Befehl nachzubilden?
Ich habe mir das Thread http://www.unixboard.de/vb3/showthread.php?t=1853 angesehen. Aber das erfüllt nicht so recht meinem Wunsch, weil der Zahlenbereich einfach zu groß ist.
Ich habe folgendes im Script computer stehen:
Man soll hier einen Computernamen eingeben, der auf einer IP-Endziffer basiert.
Zum Beispiel: 089. Unbedingt 3-stellig.
Daraus entsteht die Variable $CompName = 089.
Wird Enter gedrückt oder nicht 3-stellig eingegeben, wird das Programm neu gestartet.
Bisher fiel mir nicht anderes ein, als bei einer Falscheingabe das Script immer wieder neu starten zu lassen.
Besser wäre natürlich die Möglichkeit, mit leerem Feld zur Eingabe zurückzuspringen.
1. Wie weise ich der Variablen $IPEz (IPEndziffer) den Wert der Variablen $CompName zu?
2. Wie füge ich die Variablen $CompNameA und $CompName zusammen, um daraus die neue Variable $CompName zu bilden?
3. Wie klaue ich zu guter Letzt der $IPEz, wenn die IP unter 100 bzw. unter 10 liegt, die anführende 0?
Ich kannte bislang nur die Basic-Programmierung eines C64. Da gings einfacher.
Kann mir trotzdem jemand helfen?
---
thanks
exponator
Bin Neuling was der Shellprogrammierung anbelangt.
Gibt es eine Möglichkeit in einem Bash-Script einen Goto-Befehl nachzubilden?
Ich habe mir das Thread http://www.unixboard.de/vb3/showthread.php?t=1853 angesehen. Aber das erfüllt nicht so recht meinem Wunsch, weil der Zahlenbereich einfach zu groß ist.
Ich habe folgendes im Script computer stehen:
Code:
CompNameA="pc"
echo -n "Computername: pc"; read CompName
if [ -z $CompName ]
then echo "Du hast keinen Computernamen eingegeben."; sleep 2; sh ./computer
fi
if [ "${#CompName}" != 3 ]
then echo "Es wird eine 3-stellige Eingabe verlangt."; sleep 2; sh ./computer
fi
case $CompName in
100) echo "Diesen Computernamen kannst Du nicht verwenden."; sleep 2; sh ./computer;;
101) echo "Diesen Computernamen kannst Du nicht verwenden."; sleep 2; sh ./computer;;
102) echo "Diesen Computernamen kannst Du nicht verwenden."; sleep 2; sh ./computer;;
103) echo "Diesen Computernamen kannst Du nicht verwenden."; sleep 2; sh ./computer;;
*) echo "Ihre Angabe: pc"$CompName;;
esac
echo -n "Angabe korrekt? ";
while true
do
read JN
case "$JN" in
n) sh ./computer;;
N) sh ./computer;;
*) IPEz=$CompName; $CompName=$CompName01&&$CompName ;;
esac
done
...
Man soll hier einen Computernamen eingeben, der auf einer IP-Endziffer basiert.
Zum Beispiel: 089. Unbedingt 3-stellig.
Daraus entsteht die Variable $CompName = 089.
Wird Enter gedrückt oder nicht 3-stellig eingegeben, wird das Programm neu gestartet.
Bisher fiel mir nicht anderes ein, als bei einer Falscheingabe das Script immer wieder neu starten zu lassen.
Besser wäre natürlich die Möglichkeit, mit leerem Feld zur Eingabe zurückzuspringen.
1. Wie weise ich der Variablen $IPEz (IPEndziffer) den Wert der Variablen $CompName zu?
2. Wie füge ich die Variablen $CompNameA und $CompName zusammen, um daraus die neue Variable $CompName zu bilden?
3. Wie klaue ich zu guter Letzt der $IPEz, wenn die IP unter 100 bzw. unter 10 liegt, die anführende 0?
Ich kannte bislang nur die Basic-Programmierung eines C64. Da gings einfacher.
Kann mir trotzdem jemand helfen?
---
thanks
exponator