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 № 1if [ $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ć: