Rozwiązuj problem Bash Bad Subtitution

Rozwiązuj problem Bash Bad Subtitution
Być może otrzymałeś problem z złą podstawą do składni podczas opracowywania skryptów bash. Po przeglądaniu forów możesz odkryć, że nie jesteś sam; Inne osoby napotykają ten sam błąd. To wina typograficzna, która zdarza się podczas uruchomienia skryptu powłoki i może się zdarzyć z różnych powodów. Niewłaściwe użycie podstawienia instrukcji i błędnych znaków dołączonych do programu to dwa główne powody tego.

Zobaczmy, jak możemy sprawić, że nasz skrypt powłoki spowodował ten błąd i jak go rozwiązać. Zacznij od nowego pliku Bash utworzonego z zapytaniem Ubuntu „Touch” i otwórz go w ramach edytora „GNU Nano”.

$ Touch Sub.cii
$ nano sub.cii

Przykład 01

Pierwszym powodem złego błędu podstawienia jest użycie niewłaściwej składni kodu. Spójrzmy na to. Począwszy od pierwszego kodu bash, dodaliśmy obsługę Bash w pierwszym wierszu skryptu Bash, i.mi., „#!/bin/bash ”. Następnie zainicjowaliśmy prostą zmienną „V” z poleceniem listy Ubuntu jako jej wartości. Ta wartość została wstawiona do kręconych nawiasów i ze znakiem „$”, aby uznać ją za polecenie powłoki. Następnie instrukcja Echo jest tutaj, aby po prostu wyświetlić wartość zmiennej „v” na powładzie. Nasz kod jest kompletny i gotowy do użycia.

Zapisaliśmy kod BASH i wróciliśmy do terminala po użyciu odpowiednio Ctrl+S i Ctrl+X. Wykonaliśmy ten nowo utworzony plik skryptu Bash z instrukcją „Bash” i otrzymaliśmy tutaj „Złą zastępowanie” na naszym ekranie. Ten błąd wystąpił z powodu użycia nawiasów kręconych „” wokół instrukcji listy w kodzie.

$ bash sub.cii

Spróbujmy zaktualizować nasz kod, aby rozwiązać ten błąd. Tak więc usunęliśmy kręcone wsporniki z drugiego wiersza kodu i zastąpiliśmy je prostymi nawiasami „()”, jak przedstawiono poniżej. Ogólnie kod pozostanie taki sam, jak nie ma problemu z kodem. Zapisz ten kod teraz.

Po wyjściu z edytora GNU Nano, wykonamy plik bash „sub.sh ”zaktualizowany kod za pomocą instrukcji„ bash ”, jak przedstawiono poniżej. Okazuje się, że zły błąd podstawienia został usunięty po aktualizacji kodu, a instrukcja listy włożona w zmienną „V” została pomyślnie wykonana. Polecenie listy wyświetlało wszystkie aktualne zawartość katalogu domowego, i.mi., pliki i foldery, na naszym ekranie powłoki.

$ bash sub.cii

Przykład 02

Kolejnym powodem wystąpienia błędnych błędów podstawienia w BASH jest użycie niepotrzebnych przestrzeni podczas wykonywania niektórych zmiennych. Dlatego dodaliśmy obsługę Bash i zainicjowaliśmy zmienną „V” z instrukcją listy w niej jako wartości posiadanej przez proste nawiasy i znak dolara „$.„Po tym użyliśmy instrukcji„ Echo ”do wyświetlania zmiennej wartości„ V ”. Ale dodaliśmy zmienną „v” w instrukcji „echo” wraz z „przestrzenią” w nawiasach.

Po zapisaniu tego kodu wykonaliśmy ten plik bash z zapytaniem „Bash” w naszym terminalu, jak przedstawiono poniżej. Zwraca substytucję bash na 3r & D linia skryptu.

$ bash sub.cii

Aby usunąć błąd z naszego kodu, musimy zaktualizować nasz kod. Tak więc ponownie otworzyliśmy plik i usunęliśmy dodatkową przestrzeń w kręconych nawiasach instrukcji „echo” jak poniżej.

Teraz, gdy kod został zaktualizowany i usunięto białą przestrzeń, musimy wykonać ten plik z instrukcją BASH przedstawioną poniżej. Po uruchomieniu pliku błąd złego podstawienia został usunięty, a instrukcja listy określona w zmiennej „V” została pomyślnie wykonana na terminalu po tym, jak instrukcja „echo” została wykonana w skrypcie Bash. Lista aktualnych plików i folderów katalogu domowego jest wyświetlana na naszym ekranie powłoki poniżej.

$ bash sub.cii

Przykład 03

Ten błąd może również wystąpić z powodu użycia powtarzających się niechcianych znaków w kodzie. Próbowaliśmy więc zaktualizowanego kodu, aby uzyskać ten błąd na powładzie. W tym celu musimy dwukrotnie użyć znaku „$” w instrukcji „echo”, aby określić zmienną „v” do wykonania, która jest niewłaściwą składnią do tego. Ta zmienna „V” zawiera prostą instrukcję listy jako jej wartość. Ponieważ użyliśmy podwójnego logowania „$” do i wychodzących z kręconych nawiasów w oświadczeniu „Echo”, doprowadzi nas to do złego błędu podstawienia podczas wykonania.

Po uruchomieniu kodu z instrukcją BASH napotkaliśmy zły błąd podstawienia w wierszu 3 skryptu Bash na naszym ekranie powłoki.

$ bash sub.cii

Usuńmy zły błąd podstawienia z wykonania, aktualizując wiersz 3 kodu. Usunęliśmy wewnętrzny znak „$” w nawiasach kręconych z instrukcji „echo”.

Po usunięciu znaku „$” ponownie wykonaliśmy kod na powładzie za pomocą polecenia „Bash”. Błąd został usunięty, a lista plików i folderów została wyświetlona.

$ bash sub.cii

Przykład 04

Miejmy nasz ostatni, ale nie najmniejszy przykład tego artykułu. Używamy dwóch zmiennych, x i y, zawierających lokalizację katalogu jako ich wartość. W instrukcji „echo” tego kodu używamy obu zmiennych do wydrukowania i oddzielania znaku „/”. Każda zmienna zawiera z nią znak dolara, a znak pojedynczy dolara jest również używany poza nawiasami kręconymi.

Zastosowanie kręconych nawiasów i znaków dolara spowodowało zły błąd podstawienia.

$ bash sub.cii

Tak więc usunęliśmy kręcone wsporniki i znak dolara zewnętrznego, jak pokazano poniżej.

Ta wartość czasowa obu zmiennych została wyświetlona.

$ bash sub.cii

Wniosek

Chodzi o ilustrację tworzenia kodu bash na błędy, powodujące błąd złego podstawienia podczas wykonywania. Omówiliśmy DO i nie, aby uniknąć błędu poprzez wykonanie różnych przykładów bash.