Bash petla while do (potrzebuje szybkiej pomocy)

0

Witam! Potrzebuje szybkiej pomocy w związku z programem ktory pisze. Zaczyna sie tak ze ma wczytac 2 razy 6-ciocyfrowych liczb. Oczywiscie te liczby muszą byc poprawnie napisane wiec sprawdzam to pętla while do az ktos nie poda poprawnie liczby.
kod wygląda tak : user image

cos musi byc nietak w tych warunkach bardzo proszę o pomoc!

1
echo "Podaj pierwszy numer:"
read n1
while [[ ! $n1 =~ ^[0-9]{6,6} ]]
do
        echo "Niepoprawny numer:"
        read n1
done

echo "Podaj drugi numer:"
read n2
while [[ ! $n2 =~ ^[0-9]{6,6} ]]
do
        echo "Niepoprawny numer:"
        read n2
done
  1. W pierwszej pętli była literówka - NIE n2, ale n1.
  2. Do matchowania regex-ów służy operator =~ (tu dodatkowo zanegowany przez !), a NIE operator !=.
  3. Tak na przyszłość, kod wrzucamy w znaczniki `` a nie w obrazki. Będziesz miał większą szansę na szybką odpowiedź.
    EDIT: A, jeszcze mi się przypomniało, bash -x skrypt.sh twoim przyjacielem - świetny przełącznik do debugowania bash-a.
0

Zamiast while z zaprzeczeniem (!) można pewnie użyć pętli until.

0

Działa dziękuje bardzo! głupi błąd a tyle problemu. Pozdrawiam!

1 użytkowników online, w tym zalogowanych: 0, gości: 1