Przykład
Rozpoczniemy nasz pierwszy przykład tego artykułu, tworząc nowy kod bash w „Unary.plik sh ”. Będziemy wykorzystywać instrukcję warunkową do ilustracji tego błędu. W ramach tego pliku kodu dodaliśmy obsługę Bash w pierwszym wierszu jako „#!/bin/bash ”. Próbujemy odczytu instrukcja, aby przejąć dane wejściowe od użytkownika z opcją „-p” i dodać to wejście do zmiennej „v.„Instrukcja IF-ELSE jest tutaj, aby sprawdzić warunek. Sprawdza, czy wartość wprowadzana przez użytkownika w zmiennej „V” jest równa liczbie 14, czy nie. Aby sprawdzić równość, używamy operatora porównawczego „-eq”. Jeśli wartość dodana przez użytkownika jest dopasowana o numer 14, część „Następnie” wyświetli się „wartość dopasowana” za pomocą klauzuli „echo”. W przeciwnym razie część else wykonuje swoją instrukcję „echo” wyświetlającą komunikat „nie jest dopasowany” w powładzie. Kod jest tutaj kompletny i możemy go teraz wykonać.
Po zapisaniu kodu BASH wykonaliśmy go z instrukcją BASH. Okazuje się, że prosi o wejście od użytkownika. Użytkownik dodał wartość „67” w polu i nacisnął Enter. Ponieważ wartość nie pasuje do określonej wartości w warunku „jeśli”, część „else” została wykonana i wyświetlona „Wartość nie dopasowana”, jak przedstawiono w wyniku pokazanym poniżej.
$ Bash Unary.ciiChodziło o użycie pewnej wartości numerycznej do wykonania porównania. Wykonajmy ponownie nasz kod, aby wystąpił „Unary Operator oczekiwany” na naszej powłoce. Tak więc wypróbowaliśmy kod ponownie, a na polu wejściowym z prośbą o wartość do wprowadzenia, nic nie wprowadziliśmy (pozostawiliśmy go puste) i naciśnieliśmy przycisk „Enter”, aby kontynuować. Nagle daje nam błąd „Unary Operator oczekiwany” w wierszu 3 kodu. Następnie po prostu wyświetlił komunikat „Wartość nie dopasowana” za pomocą drugiej części warunku wymienionego w kodzie.
$ Bash Unary.ciiChociaż napotkaliśmy błąd „oczekiwany nieżyny operator” w obszarze wyjściowym w terminalu, nie jesteśmy w stanie rozpoznać głównego powodu tego błędu. Aby znaleźć główny powód tego problemu, musimy debugować kod pliku bash. W tym celu musimy użyć opcji „-xv” w instrukcji BASH, a następnie nazwa pliku, która zaczyna się od. "/" jak pokazano. Będzie debugować każdą wiersz naszego kodu i wyświetli również linię błędów. Pokazuje, że linia błędów to „[-eq 14]”. Nie pokazuje „$ v”, jak określono w kodzie. Powodem tego błędu jest to, że użycie przestrzeni sprawi, że wyrażenie po lewej stronie, i.mi., „$ V” znikają ze stanu.
$ bash -xv ./Unary.ciiAby uniemożliwić temu skryptowi wyrzucenie błędu „Unary Operator oczekiwany” na BASH, musimy ponownie zaktualizować kod. Musimy dodać podwójne cytaty wokół lewego wyrażenia „$ v”, jak to zrobiliśmy na poniższym obrazku. Reszta kodu pozostanie na razie niezmieniona. Teraz kod jest gotowy do użycia. Musimy zapisać go najpierw za pomocą „Ctrl+S” i wyjść z pliku z „Ctrl+x."
Po wykonaniu zaktualizowanego pliku Bash z zapytaniem Bash, użytkownik ponownie naciśnął Enter bez wprowadzania jakiejkolwiek wartości w polu wejściowym przed tekstem „Wprowadź coś”. Teraz nieżywy operator oczekiwany błąd został usunięty, ale kolejny błąd „oczekiwano wyrażenia liczb całkowitych”, powstał. Ale pokazuje także komunikat wyświetlania, że wartość wprowadzona przez użytkownika nie pasuje do numeru 14. Musimy więc znaleźć rozwiązanie tego błędu.
$ Bash Unary.ciiJak wiemy, że używamy operatora porównawczego „-eq” do porównania niektórych wartości z liczbą całkowitą 14. Będzie to wyjątek, ponieważ operator porównawczy „-eq” jest zaprojektowany tylko i używany do porównania wartości łańcuchowych lub zmiennych. Aby porównać liczby liczb całkowitych w BASH, musimy użyć operatora przypisania „=”, aby sprawdzić, czy dwie wartości są równe, czy nie. Zapiszmy ten zaktualizowany kod, aby zobaczyć wynik.
Po tym zaktualizowanym wykonaniu kodu BASH użytkownik ponownie nie wprowadził nic i po prostu nacisnął „Enter”, aby kontynuować. Tym razem nie mamy żadnych błędów. Wynika to z użycia operatora „=”. W zamian wykonał klauzulę „else” i wyświetlił komunikat „nie dopasowany wartość”.
$ Bash Unary.ciiInnym sposobem uniknięcia napotkania niepokojącego błędu operatora w naszej powładzie terminalu jest użycie podwójnych wsporników „kwadratowych” na początku i na końcu warunku „jeśli” podczas korzystania z operatora porównawczego „-eq” dla dowolnego rodzaju wartości. Zrobiliśmy to, jak pokazano poniżej.
Po naciśnięciu „Enter” użytkownik nie otrzymuje żadnego błędu podczas wykonywania.
$ Bash Unary.ciiWniosek
Chodzi o zastosowanie różnych metod rozwiązania błędu BASH „Oczekiwany operator Unary Operator.„Podczas tego napotkaliśmy kolejny błąd:„ oczekiwane wyrażenie liczb całkowitych ”i również go rozwiązaliśmy. Możesz zmienić powyższy przykład i rozwiązać błąd Bash.