Nem működik a while a scriptemben, akárhogy próbálom. A több feltételt nem tudom megadni neki: #!/bin/bash memoria=2048 cdrom=WS2008/ws2008.iso wincseszter=wincseszter echo Cdről vagy hdről bootoljak? read boot while [[ $boot != "cd" || $boot != "hd" ]]; do echo Rossz paramétert adtál meg read boot done if [ $boot = "cd" ]; then boot=d else boot=c fi kvm -m $memoria -cdrom $cdrom -hda $wincseszter -boot $boot
Ezt így hogy képzelted?
while [[ $boot != "cd" || $boot != "hd" ]]; do echo Rossz paramétert adtál meg read boot done
while : do read boot if [ $boot != "cd" -a $boot != "hd" ] then echo "Rossz paramétert adtál meg" else break fi done
KendekÍgy igaz, soha nem lép ki, a másik amivel még próbálkoztam, az meg átenged mindent, de sehogy sem tudom jóra megcsinálni.. Az eredeti terv az, hogy csak akkor engedjen tovább, ha azt írom be, hogy cd vagy ha azt, hogy hd.
KendekKöszi a segítséget, ez működött, bár az alapelvét nem egészen értem, de majd utánanézek.. Mégegyszer köszi..
KonfliktErre írtam megoldást.
KonfliktNem tart semeddig, így elmagyarázom: while : #A kettőspont nem ad hibajelet, így indul a ciklus. Általában ez a használatos, de bármi egyéb is megfelel. do read boot #Begépelsz valamit, a boot változó értéke lesz. if [ $boot != "cd" -a $boot != "hd" ] #Ha a boot változó értéke nem cd és nem is hd, akkor... then echo "Rossz paramétert adtál meg" #kiírja ezt a szöveget és újraindul a ciklus, else break #ellenkező esetben kilép a ciklusból. fi done
KendekKöszönöm, mostmár értem..