Visualizzazione dei risultati da 1 a 5 su 5

Discussione: [bash] - Ciclo While

  1. #1

    [bash] - Ciclo While

    Ciao a tutti!

    Sto studiando bash e non riesco a risolvere il seguente problema:

    Devo scrivere un ciclo while che ripeta la stessa domanda fin quando la risposta è diversa da "y" e da "n" ma non riesco a capire dove sia il problema:

    #!/bin/bash

    clear

    RISPOSTA="f"

    while [[ $RISPOSTA != "y" || $RISPOSTA != "n" ]]
    do

    echo "Isolare il sistema disabilitando le schede di rete? (y/n) "
    read RISPOSTA

    if [ $RISPOSTA == "y" ]
    then

    echo "ok"

    # qui le altre operazioni

    fi

    done

    Precisamente, il ciclo while funziona ma non termina neanche premendo y o n.

    Vi allego l'output:

    Isolare il sistema disabilitando la scheda di rete? (y/n)
    prova
    Isolare il sistema disabilitando la scheda di rete? (y/n)
    y
    ok
    Isolare il sistema disabilitando la scheda di rete? (y/n)
    n
    Isolare il sistema disabilitando la scheda di rete? (y/n)
    altra_prova
    Isolare il sistema disabilitando la scheda di rete? (y/n)

    [2]+ Stopped ./prova1.sh
    root@alex:/home/alex/Desktop#

    Grazie a tutti per l'attenzione!

  2. #2
    [[ $RISPOSTA != "y" || $RISPOSTA != "n" ]]
    è sempre soddisfatta, quindi il ciclo continua

    Bisogna strutturarla in un altro modo

  3. #3
    Non va bene l'utilizzo di != ?


  4. #4
    Intendo che è sempre verificata.
    Perchè blocchi il ciclo bisogna che restituisca "false", ovvero che $RISPOSTA == "y" e $RISPOSTA == "n", cosa evidentemente impossibile

    --edit--
    Ops, errore

  5. #5
    Grazie dell'aiuto vortex87

    Ciao!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.