/ / Dlaczego niektórzy ludzie umieszczają średnik po warunku if w skryptach powłoki? - bash, shell

Dlaczego niektórzy ludzie umieszczają średnik po warunku if w skryptach powłoki? - bash, shell

Po prostu przyzwyczaiłem się do skryptów powłoki i natknąłem się na coś, czego nie jestem pewien, jak google.

W tutorialach, które czytałem, sugeruje, że poprawny sposób napisania instrukcji if jest następujący:

if [ $a == $b ]; then
echo "a == b"
fi

Jednak widziałem w naszych bazach kodu miejsca, w których pomija się średnik:

if [ $a == $b ] then
echo "a == b"
fi

Widziałem również podwójne nawiasy kwadratowe:

if [[ $a == $b ]]; then
echo "a == b"
fi

Kiedy przetestowałem te wszystkie w bashu, nie wydaje się, żeby to była różnica. Czy istnieje różnica? Czy ma to związek ze zgodnością? Jaki jest właściwy styl do przyjęcia?

Odpowiedzi:

4 dla odpowiedzi № 1
if [ $a == $b ]; then
echo "a == b"
fi

Możesz użyć średnika lub pisać then w osobnej linii. Każda z nich jest dozwolona.

if [ $a == $b ]
then
echo "a == b"
fi

Nie mając ani ; ani nowa linia nie jest błędem składni.

$ if [ $a == $b ] then
>   echo "a == b"
> fi
bash: syntax error near unexpected token `fi"

Co się tyczy [ vs [[, widzieć: