Jak symulować tablicę tablic w Bash

Jak symulować tablicę tablic w Bash
Bash jest rzeczywiście interpretowanym, interaktywnym językiem i ile miejsca do rezerwacji z wyprzedzeniem nie musi być znane. Możliwe jest również przygotowanie nowej tablicy dynamicznie bez deklarowania jej lub rozszerzania wcześniej zdefiniowanej tablicy o kolejne wpisy. Mimo to wielowymiarowe tablice nie są obsługiwane przez Bash i nie możemy uzyskać komponentów tablic, które są również tablicami. Na szczęście można symulować wielowymiarowe tablice. Ten artykuł zawiera kilka ilustracji symulacji szeregu tablic w skrypcie Bash.

Przykład 01: Używanie prostych pętli „for”

Mamy przykład symulacji tablicy przy użyciu prostej metody. Zacznijmy pokazać, jak załadować tabelę m x n zdefiniowaną przez użytkownika z liczbami losowymi (które nie są losowe, ponieważ każda kolumna będzie miała podobną liczbę w każdym biegu w większości swoich rzędów, ale to nie dotyczy pytania ) i wydrukuj. Kiedy pracujemy nad baską, którą masz, Bash wersja 4, poniższy skrypt z pewnością działałby wydajnie. Nie powinniśmy samotnymi oświadczyć 0; To bardziej jak idealne rozwiązanie dla wartości, które są energicznie akceptowane. Zadeklarowaliśmy tablicę ze słowem kluczowym „-a”. Jeśli nie zdefiniujemy tablicy asocjacyjnej za pomocą -a, kod może dla nas nie działać. Słowo kluczowe odczytu służy następnie do odczytania wejścia użytkownika, którym jest wiersze i kolumny tabeli. Następnie użyliśmy dwóch pętli „dla” do przyrostu wierszy i kolumn tabeli. W pętli, tworzyliśmy dwuwymiarową tablicę. W następnej pętli wyświetlono wszystkie wartości tablicy.

Po uruchomieniu pliku Bash poprosi użytkownika o wprowadzenie wierszy i kolumn jako „M” i „N”. Następnie dla pętli wygenerują dwuwymiarową tabelę jak poniżej.

Przykład 02: Za pomocą skrótów

Biorąc ten sam przykład, możemy naśladować tablice za pomocą skrótów. Musimy jednak uważać na prowadzenie zer i kilku innych rzeczy. Następne wyjaśnienie działa. Jednak wyjście jest bardzo dalekie od ideału. Ręcznie bierzemy rzędy i kolumny. Do tworzenia macierzy używane jest do pętli. Następnie używamy skrótów do naśladowania dwuwymiarowego tablicy. W końcu tablica zostanie wydrukowana jak poniżej.

Wykonaj plik „Wejście.sh ”w skorupce bash za pomocą polecenia bash. Znajdziesz tabelę z wymienionym numerem kolumn.

Przykład 03: Korzystanie z tablic asocjacyjnych

Miejmy przykład symulacji o nieco podobnym efekcie przy użyciu tablic asocjacyjnych używanych jako tablica tablic jak poniżej. Po deklaracji tablicy asocjacyjnej zdefiniowaliśmy wartości oddzielnie. Następnie udało nam się wydrukować wartości w dwuwymiarowy sposób.

Podczas uruchamiania pliku możesz postrzegać dane wyjściowe jako tablicę dwuwymiarową. Jeśli zignorujemy linię „Deklaruj -ARR”, instrukcja Echo może wyświetlić (2 3), a nie (0 1), ponieważ (0,0), (1,0) i inne mogły być używane jako matematyczne Wyrażenie i obliczone na 0 (wartość po prawej stronie przecinka).

Przykład 04: Korzystanie z odrzutów nazwy

W BASH jest to często problem z odwołaniem tablic wewnątrz tablic, które musisz skonstruować referencje z nazwami za pomocą deklaracji -n. Ta nazwa później -n służy jako nazwa Ref dla wartości przydzielonej (po =). Obecnie obsługujemy tę zmienną tylko z nazwą atrybutów, aby rozszerzyć się tak, jakby była tablicą i rozszerzyć odpowiednio cytowaną tablicę, jak wcześniej. Miejmy przykład imienia. Z powodzeniem zadeklarowaliśmy dwie tablice. Następnie przypisaliśmy obie tablice do innej tablicy jako członek. Użyliśmy pętli do tworzenia dwuwymiarowej tablicy. Zrobiliśmy inną zmienną, aby dodać do niej jeden po drugim wartości tablicy „grupy”. W głębi duszy trafi do członków wewnętrznych tablic „Bar” i „Foo”, aby wziąć wartości i porównać je podczas drukowania wiadomości.

Kiedy wykonywamy plik „Wejście.sh ”, zobaczysz poniższe wyjście. Zmienna „LST” ma wartości wewnętrznych tablic w ramach tablicy „Grupy”.

Przykład 05: Za pomocą słowa kluczowego cięcia

Dopiero teraz się w to wpadłem. Istniało dość proste podejście, które działało dla wszystkich. Aby pokazać główną mapę systemu, postanowiłem użyć tablicy zawierającej nazwę urządzenia i lokalizację ekranu. Musimy połączyć tytuł urządzenia i odpowiednie położenie wyświetlacza w jakimś pojedynczym ciągu, używając tylko ogranicznika, który, jak zakładaliśmy, nie wystąpi w żadnej z naszych wartości (w moim przypadku użyłem .). I użyłem słowa kluczowego „wyciętych” do podziału konkretnych wartości na ich komponenty, jeśli to konieczne. Może to jednak istnieć wyraźniejsze i łatwiejsze podejście, a to tylko po to, aby zilustrować, że w pewnym sensie w Bash możemy zbudować tablicę wielowymiarową, chociaż to nie pomaga, to nie pomaga. Następnie musisz wydrukować zarówno nazwę urządzenia, jak i jego lokalizację osobno po utworzeniu podłoża.

Uruchommy bash „Wejście.plik sh ”. Zobaczysz oddzielone urządzenie i jego lokalizację w montorze powłoki, ponieważ podczas wykonywania. Rozwiązanie działa za pomocą polecenia CUT.

Przykład 06

Weźmy trochę dłuższego przykładu, aby naśladować wielowymiarową tablicę. W funkcji Load_Alpha () wszystkie alfabety zostaną załadowane do tablicy. Następnie funkcja print_alpha () jest zadeklarowana i używana do wydrukowania wszystkich alfabetów w kolejności wiertniczej jako macierz lub format dwuwymiarowy. Z drugiej strony, używamy funkcji rotate () do obrócenia tablicy. Wypróbujmy ten przykład w powładzie Bash, aby zobaczyć wyniki.

Podczas wykonywania znaleźliśmy bardzo piękną strukturę wielowymiarowej tablicy w skorupce bash

Wniosek

Z powodzeniem wypróbowaliśmy kilka przykładów symulacji tablic w Bash. Mam nadzieję, że to działa!