[Bash] pomoc w skrypcie

0

Witam, muszę napisać prosty program w bash jednak nie jestem pewien czy jest poprawnie napisany.
Czy ktoś jest w stanie go sprawdzić?(coś dodać/poprawić)

#!bin/bash
echo "Witaj program do obliczania kwadratu liczby mniejszej od 20"
echo "Podaj liczbę:"
read x

if [$x <= "20" ]; then
kwadrat=$[ $x *$x ];
echo "Kwadrat podanej liczby wynosi: $kwadrat"
fi

if [$x > "20" ]; then
echo "Błąd liczba z poza zakresu"
fi

1

W skrócie:

  • shebang (ta dziwna pierwsza linia) powinna zawierać ścieżkę absolutną do interpretera czyli w Twoim przypadku /bin/bash a nie bin/bash
  • wyrażenie if [$x <= "20" ]; then trzeba zmienić na if [[ $x -le "20" ]]; then bo: 1) brak spacji, 2) zły operator porównania, 3) $x bez cudzysłowów (albo podwójne nawiasy [[ ]]). Podobne uwagi tyczą się if [$x > "20" ]; then
  • do operacji arytmetycznych używaj $(( )), czyli wyrażenie kwadrat=$[ $x *$x ]; do poprawy na kwadrat=$(( x * x ))
  • używaj wcięć - formatowanie jest również ważne w skryptach bashowych
0

W tym momencie wygląda to tak

#!/bin/bash
echo "Witaj program do obliczania kwadratu liczby mniejszej od 20"
echo "Podaj liczbę:"
read x

if $x -le "20" ; then
kwadrat=$(( x * x ));
echo "Kwadrat podanej liczby wynosi: $kwadrat"
fi

if $x -gt "20" ; then
echo "Błąd liczba z poza zakresu"
fi

i dziękuję bardzo

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