#webboy Napisano Kwiecień 20, 2006 Zgłoszenie Share Napisano Kwiecień 20, 2006 Witam. Niedawno zacząłem uczyć się pisania skryptów w bashu. Teraz pracuje nad taką prostą, tekstową giierką i będąc w trakcie robienia menu trafiłem na mały problem. Czy da się do wskaźnika tablicy przekazać warotść innej zmiennej? Po niżej zamieściłem przykładowy kod pokazujący o co mi chodzi: #!/bin/bash tablica=(element1 element2 element3) licz_elementy_tablicy=$(echo ${#tablica[@]}) #funkcja liczaca elementy tablicy echo ${tablica[$licz_elementy_tablicy]} #teraz powinna wyswietlic sie ostatnia wartosc tablicy A jeśli to możliwe czy istnieje możliwość wykonywania we wskaźniku tablicy prostycz działań arytmetycznych na dwóch zmiennych? Np: #!/bin/bash tablica=(element1 element2 element3) licz_elementy_tablicy=$(echo ${#tablica[@]}) #funkcja liczaca elementy tablicy echo ${tablica[$licz_elementy_tablicy]} #teraz powinna wyswietlic sie ostatnia wartosc tablicy echo ${tablica[$licz_elementy_tablicy - $licz_element_tablicy]} #teraz zmienne powinny odjąć się od siebie i wartość wskaźnika powinna wynieść 0 Jestem naprawde początkujący w tej kwestii i prosiłbym o przyzwoite wytłumaczenie Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
ecik__ Napisano Kwiecień 20, 2006 Zgłoszenie Share Napisano Kwiecień 20, 2006 (edytowane) #!/bin/bash tablica=(element1 element2 element3) licz_elementy_tablicy=$(echo ${#tablica[@]}) #funkcja liczaca elementy tablicy echo ${tablica[$licz_elementy_tablicy]} #teraz powinna wyswietlic sie ostatnia wartosc tablicy Co do tej ostatniej linijki: wcale nie powinna. Przy liczeniu ilości rekordów w tablicy bash podaje jej rzeczywistą ilość, w tym przypadku 3. Natomiast w chwili odwołania się do konkretnych rekordów sa one liczone od 0, więc aby wyświetliła się ostatnia wartość tablicy należy wpisać: echo ${tablica[$licz_elementy_tablicy-1]} Natomiast: echo ${tablica[$licz_elementy_tablicy - $licz_element_tablicy]} . Błąd polega na tym iż przed i po znaku - nie powinny znajdować się spacje. A tak w ogóle uważam, że prościej w takim przypadku wpisać po prostu to 0 EDIT: O kurczę, a jednak nie :] Właśnie się zorientowałem, że najpierw jest $licz_elementy_tablicy, a potem $licz_element_tablicy Edytowane Kwiecień 20, 2006 przez ecik__ Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
#webboy Napisano Kwiecień 20, 2006 Autor Zgłoszenie Share Napisano Kwiecień 20, 2006 Dzięki ecik_ Już wszystko działa. Niezwróciłem uwagi na to, że bash liczy rekordy od 0 Tak na marginesie: znasz jakąś dobrą książkę o bashu, albo stronę z ciekawymi skryptami? Pzdr Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
lszk Napisano Kwiecień 20, 2006 Zgłoszenie Share Napisano Kwiecień 20, 2006 znasz jakąś dobrą książkę o bashu, albo stronę z ciekawymi skryptami? To może ja http://forum.fedora.pl/index.php?showtopic...ic=8293&hl=bash http://www.google.com/search?client=opera&...=utf-8&oe=utf-8 Odnośnik do komentarza Udostępnij na innych stronach More sharing options...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się