Po spełnieniu wymagań wymagania dla móc uruchamiać skrypty bash, i rozumiem jak definiować funkcje, Naucz się jak zwracają wartości w funkcjach basha. W tym celu stworzymy mały, ale potężny program w Bash obliczyć litery DNI. Mam dobrą wiadomość: Bash też może być zainstalowane w systemie Windows 10. Z tym, co można dodać całą moc Linuksa w systemach operacyjnych, powiedzmy ... inaczej.
Przede wszystkim musimy zrozumieć, jak podciągi, który jak w każdym języku ma taką możliwość zwraca części łańcucha ze wskazania łańcucha, pozycji i długości segmentu. Spójrzmy na przykład takiego zachowania. Tworzymy nasz skrypt za pomocą
$ touch prueba_substring $
Następnie dodajemy następujący kod z preferowanym edytorem. W trybie terminala mój ulubiony edytor to mcedit. Ale ostatnio widzę, że nano zyskuje na sile.
#!/usr/bin/env bash # Demo comportamiento de substrings en Bash # Pedro Ruiz Hidalgo # version 1.0.0 # Febrero 2017 ret="\n" CADENA="siempre uso Linux con Ubuntu y Ubunlog, claro!" # "0123456789012345678901234567890123456789012345" # " 1 2 3 4 " # (usa la regla para medir los caracteres) echo -e $ret ${CADENA:12} echo -e $ret ${CADENA:12:5} echo -e $ret "Aprendo en ${CADENA:31:7}" exit 0
Dodanie uprawnień i wykonanie w ten sposób:
$ chmod +x prueba_substring $ ./prueba_substring $
Powinien, jeśli wszystko poszło dobrze, zwrócić następujący wynik:
Linux Con Ubuntu y Ubunlog, claro! Linux Aprendo en Ubunlog
Operacja podłańcucha
Jak widać powyżej Podkreśliłem wiersze od 13 do 15 skryptu i przejdź do wyjaśnij swój kod. Echo z parametr „-e” pokażmy znak następnego wiersza, zdefiniowaliśmy ten znak w wiersz 7 i przypisany do zmiennej «ret».
Linia 13: pokazuję podciąg (podciąg) zmiennej CHAIN, opisanej w linii 8, od pozycji 12. Zawsze zaczynam liczyć od pozycji 0.
Wiersz 14: Od pozycja 12 zmiennej CHAIN, pokazuję segment 5. Jak sprawdzisz, odpowiada to podciąg „Linux”.
Wiersz 15: tworzę nowy ciąg w cudzysłowie Zaczynam od „Uczę się w”, aby kontynuować podłańcuch zmiennej CHAIN z pozycji 31, biorąc odcinek 7: odpowiada «Ubunlog».
Funkcje ogłaszania zwrotnego
Mechanizm powrotu z Bash jest tworzony przez polecenie "return", chociaż kiedy musimy dopasować go do zmiennej Bash, implementuje on "dziwny" mechanizm, do którego trzeba się przyzwyczaić. Spójrzmy na następujący przykład:
#!/usr/bin/env bash function suma(){ local a=$1 local b=$2 return $(( $a + $b )) } suma 12 23 retorno=$? echo $retorno
Funkcje należy zawsze zdefiniować przed użyciem ich w Bashw związku z tym po szulernia deklarujemy sumę funkcji w linii 4 określamy za pomocą „lokalnego” przypisanie pierwszego z parametrów ($ 1) do zmiennej „a”. Identyczna procedura na linii 5, gdzie przypisujemy drugi parametr a ($ 2) do zmiennej «b». W linii dziewiątej wywołujemy funkcję sumy z dwoma parametrami, które zostaną przekonwertowane przez mechanizm opisany w zmienne „a” i „b” i przy „return” zwracamy je dodane, jak można łatwo zauważyć w instrukcji funkcji.
Zmienną „return” przypisujemy w linia 10 wynik wykonania funkcji suma.
Po przestudiowaniu i zrozumieniu sposobu, w jaki Zwroty wartości i przypisanie do zmiennych są praktykowane Chodźmy, aby zobaczyć nasz program obliczanie liter DNI za pomocą Bash.
Skrypt do obliczania liter DNI za pomocą Bash
#!/usr/bin/env bash nl="\n" LETRAS="TRWAGMYFPDXBNJZSQVHLCKEO" NORMAL=0 ERROR=66 if [ $# -lt 1 ]; then echo -e "$nl Cálculo DNI, introduce número$nl" read -r ndni [ -z "${ndni//[0-9]}" ] && [ -n "$ndni" ] || echo "Sólo números" && exit $ERROR else ndni=$1 fi modulo () { return $(( $ndni % 23 )) } modulo ndni mod=$? echo $ndni-${LETRAS:$mod:1} exit $NORMAL
La list naszego DNI odpowiada moduł liczbowy 23. To jest, liczbę dzielimy przez 23 y zamiast patrzeć na iloraz, obserwujemy resztę podziału. Inne słowa, jak liczby podzielne przez 23 dadzą zero, list, który odpowiada temu jest „T”, od tego jest pozycją 0, jak widzieliśmy w powyższym skrypcie, wszystkie podciągi zaczynają liczyć od zera. Oznacza to, że z modułem zawsze uzyskamy liczby od 0 (litera „T”) do 22 (litera „O”). W Bash, podobnie jak w innych językach moduł jest uzyskiwany za pomocą operatora procentowego „%”.
W linia 5 definiujemy litery w Twoim zamówieniu. To jest oczywiste, kolejności nie można zmienić dla wiarygodnych wyników. W przypadku linii 9 pytamy jeśli podczas wywoływania skryptu jako parametr była liczba. Jeśli nie ma parametru, żądamy tego za pomocą klawiatury zgodnie z instrukcjami w wierszach od 11 do 13. Jeśli skrypt został wywołany z liczbą w celu obliczenia kolejności w wierszu 15, przypisz ten parametr do zmiennej «ndni».
W linii 23 odwołujemy się do funkcji modulo poprzez parametr of zmienna «ndni», albo została zebrana jako parametr w bash, albo przez klawiaturę jako dane wejściowe. W linii 24. powrót funkcji jest przypisany do zmiennej „mod”. Na linii 25 mpokazujemy liczbę, myślnik i literę odpowiadającą pozycji zgodnie z obliczeniem modułu i podciągu.
Testowanie naszego skryptu DNI
$ ./dni 12345678 12345678-Z
No cóż,
$ ./dni Cálculo DNI, Introduce número
Wszystkie nasze skrypty powinny zawierać parametr „-a” dla autora i drugi „-h” dla pomocy i składni. Jak widzieliśmy w poprzednich artykułach, albo pozostawiam Wam to, aby kod nie był bardziej uciążliwy.
Mam nadzieję, że ten artykuł wzbudził Twoje zainteresowanie.
Witam, czy ktoś może mi pomóc? Muszę zainstalować lubuntu na moim starym komputerze stacjonarnym, ale nie pozwala mi na instalację przez USB, a napęd DVD jest uszkodzony, chcę tylko zainstalować http://www.plop.at do Ubuntu 16.04 LTS, ale nie wiem, jak to zrobić. Dzięki
Omar
Jak wspomniałeś, sytuacja nie jest zbyt obiecująca: USB nie jest dozwolone, a napęd DVD jest uszkodzony. Ale komentujesz też, że „komputer jest stary”, czyli masz nowy. Spróbuj umieścić instalację na dysku twardym z działającego komputera i spróbować zainstalować ją z tego dysku.
pozdrowienia
Masz komputer i wyjmowane pudełko? Zamontuj dysk twardy starego komputera w wymiennym pudełku USB i uruchom dysk instalacyjny.
Linux i Unix nie biorą pod uwagę sprzętu na poziomie rozruchu, za pomocą którego można ponownie umieścić dysk z zainstalowanym linuxem.
Dziękuję bardzo. Mówię wam, że to, co zrobiłem, to przejście z Ubuntu 16.04 na Lubuntu 16.04 w tym samym systemie operacyjnym, hehe, więc mój stary komputer działał dobrze hehe pozdrowienia z Kolumbii.