Rozwiązuj problem Bash Unary Operator

Rozwiązuj problem Bash Unary Operator
Błędy mają zróżnicowaną liczbę rodzajów i powodów, dla których chodzi o programowanie BASH. Jednym z tych błędów jest błąd „Unary Operator oczekiwany” w programowaniu BASH. Oceniając wyrażenia w deklaracjach warunkowych, możesz wpaść na problem „Unary Operator oczekiwany”. Przyczyny tego błędu „Oczekiwany operator Unary” mogą być zróżnicowane. Zaczniemy od mówienia o tym, co tworzy problem. Następnie przejdziemy do kilku opcji rozwiązania tego problemu. Zacznijmy od dzisiejszego artykułu, tworząc nowy plik bash w Ubuntu 20.04 System. W tym celu musimy użyć instrukcji „dotyk” w terminalu powłoki i nazwać plik „Unary.cii". $ Touch Unary.cii
$ nano Unary.cii

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.cii

Chodził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.cii

Chociaż 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.cii

Aby 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.cii

Jak 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.cii

Innym 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.cii

Wniosek

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.