Anzeige:
Ergebnis 1 bis 7 von 7

Thema: Probleme mit shell-script

  1. #1
    Soeren
    Gast

    Probleme mit shell-script

    Hallo,

    erstmal eine kurze Vorstellung. Meinen Namen seht Ihr ja . Ich habe erst vor kurzem angefangen mich mit Scriptsprachen zu beschäftigen und bin nun promt auf ein (für mich) unlösbares Problem gestoßen.
    In folgendem Script wird die Zeile in der "Quemu usw." steht beim ausführen einfach übergangen, soll heißen, Das festplattenimage wird nicht angelegt (Zeile 27). Hoffe einer von euch kann mir helfen. Ich danke!! Ach ja. Das script ist selbstverständlich noch nicht fertig. Ich stehe noch am Anfang.

    Code:
    #!/bin/bash
    
    # Skript-Name: vmxmaker.dat
    # Hinweis: Diese Skript ist geschrieben für SUSE Linux. Verwendung auf eigene Gefahr. :-)
    
    dir= pwd
    
    message=$(cat info1.txt)
    
    dialog --clear --msgbox "$message" 0 0
    
    aktion=$(dialog --clear --menu "Bitte Aktion auswählen" 0 0 0  \
    	"Festplatte erstellen" "Erstellt eine virtuelle HDD für das emulierte OS" \
    	"VMX-Datei erstellen" "Erstellt die Stuerungsdatei" 3>&1 1>&2 2>&3)
    
    
    case $? in
    	1) dialog --clear --msgbox "Und Tschüss" 0 0 ;;
    	0) case $aktion in
    		"Festplatte erstellen" ) dialog --clear --msgbox "Bitte stelle sicher, dass 'qemu' installiert ist" 0 0 
    			name=$(dialog --inputbox "Bitte Name für virtuelle Festplatte eingeben z.B. 'winxp'" \
    				0 0 "" 3>&1 1>&2 2>&3)
    			size=$(dialog --clear --inputbox "Bitte Festplattengröße in Gigabyte eingeben z.B.'4'" 0 0 "4" \
    				3>&1 1>&2 2>&3) 
    		mkdir $name
    		cd $name
    		qemu-img create -f vmdk $name{.vmdk} $size{G}
    		cd .. 
    			dialog --clear --msgbox "Es wurde im Skriptordner ein neues Verzeichnis mit dem Namen '$name' angelegt. Darin befindet sich die virtuelle Festplatte. Jetzt bitte die VMX-Datei erstellen" 0 0
    		;;
    		"VMX-Datei erstellen" ) dialog --clear --msgbox "VMX-Datei erstellen" 0 0 
    			dialog --clear --yesno "Bitte zuerst die virtuelle Fesplatte erstellen!!! Weiter mit 'ja' zurück mit 'nein'" 0 0
    				answer=$?
    					if [ answer = 0 ]
    					then
    						dialog --clear --msgbox "Weiter gehts" 0 0 
    					else
    						exit 0
    					fi ;;
    	esac
    esac
    
    clear
    
    exit 0

  2. #2
    Registrierter Benutzer
    Registriert seit
    09.10.2002
    Ort
    Berlin
    Beiträge
    110
    Hallo

    Ich persönlich setze immer nach der ersten Zeile.

    "#!/bin/bash"

    set -x

    Somit kann man nachvollziehen was genau das Script ausführt(debuggen).

    Ich schätze das es an der Zeile:

    Code:
    if [ answer = 0 ]
    
    solllte eher
    
    if [ $answer  -eq 0 ]
    
    heißen.
    Schau mal unter "man test" nach.

    MfG
    klaus_harrer

  3. #3
    Soeren
    Gast
    Hallo Klaus,

    an der Zeile lag es zwar nicht (da war aber auch ein Fehler, Danke ) aber dank deinem Tip mit Set -x konnte ich das problem schnell lösen. Danke!!
    Aber wo wir gerade dabei sind. wie kann ich dem Script verständlich machen, nach dem Abarbeiten einer bestimmten Zeile, an eine vorhergehende Zeile zurückzukehren?
    Geändert von Soeren (01-09-2007 um 14:11 Uhr)

  4. #4
    Registrierter Benutzer Avatar von bischi
    Registriert seit
    10.04.2003
    Beiträge
    4.828
    Tönt nach ner Aufgabe für nen loop (for, while)

    MfG Bischi

    "There is an art, it says, or rather, a knack to flying. The knack lies in learning how to throw yourself at the ground and miss it" The hitchhiker's guide to the galaxy by Douglas Adams

    --> l2picfaq.pdf <-- www.n.ethz.ch/~dominikb/index.html LaTeX-Tutorial, LaTeX-Links, Java-Links,...

  5. #5
    Soeren
    Gast
    weiß nicht. glaub n loop wäre doof. muss ich mal drüber nachdenken. Kann ich nicht irgendwie anders dafür sorgen, dass das skript an eine bestimmte zeile zurückspringt?

  6. #6
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Du möchtest GOTO? Nöö, nix da ;-)

    Funktionen je nach dem.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  7. #7
    Soeren
    Gast
    schade eigentlich

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •