O'Reilly logo

Bash. Receptury by Cameron Newham, JP Vossen, Carl Albing

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

6.6. Sprawdzanie równości dwóch wartości

Problem

Chcemy sprawdzić, czy dwie wartości są sobie równe, ale do dyspozycji mamy dwa różne operatory porównania, –eq i = (lub ==). Którego z nich należy użyć?

Rozwiązanie

O tym, który z operatorów powinien zostać wykorzystany, decyduje rodzaj operacji porównania. Operator –eq jest stosowany do porównywania wartości liczbowych, natomiast zadaniem operatora = (lub ==) jest przede wszystkim porównywanie ciągów tekstowych.

Analiza

Kolejny skrypt w sposób praktyczny uwidacznia te różnicę.

#!/usr/bin/env bash # plik receptury: strvsnum # # porównywanie ciągów tekstowych i wartości liczbowych # VAR1=" 05 " VAR2="5" printf "%s" "Czy operator -eq uznaje wartości za równe? " if [ "$VAR1" -eq "$VAR2" ] then echo TAK else ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required