Konflikt 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
Kendek Ezt így hogy képzelted? while [[ $boot != "cd" || $boot != "hd" ]]; do echo Rossz paramétert adtál meg read boot done Soha nem lép ki a ciklusból, vagy mi? while : do read boot if [ $boot != "cd" -a $boot != "hd" ] then echo "Rossz paramétert adtál meg" else break fi done
Konflikt 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.
Konflikt 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..
Kendek 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