W Internecie jest wiele przewodników pokazujących, jak tworzyć skrypty Shell za pomocą BASH, a niniejszy przewodnik ma na celu dać nieco inny spin, ponieważ jest napisany przez kogoś, kto ma bardzo mało doświadczenia w tworzeniu skryptów powłoki.
Teraz możesz pomyśleć, że to głupi pomysł, ale uważam, że niektórzy przewodnicy rozmawiają z Tobą tak, jakbyś był już ekspertem, a inni przewodnicy zbyt długo czekają cię na poszukiwania.
Podczas gdy moje doświadczenie w tworzeniu skryptów powłoki LINUX / UNIX jest ograniczone, jestem programistą z branży i jestem łatwym w obsłudze językiem skryptowym, takim jak PERL, PHP i VBScript.
Celem tego przewodnika jest to, że nauczysz się jak się uczę, a wszelkie informacje, które zdobędę, przekażę ci.
Pierwsze kroki
Jest oczywiście dużo teorii, którą mógłbym ci przekazać od razu, na przykład opisując różne typy powłoki i zalety korzystania z BASH ponad KSH i CSH.
Większość ludzi, ucząc się czegoś nowego, chce wskoczyć i zacząć od kilku praktycznych lekcji i mając to na uwadze, nie będę zanudzać Cie ciekawostkami, które teraz nie są ważne.
Wszystko, czego potrzebujesz, aby postępować zgodnie z tym przewodnikiem, to edytor tekstów i terminal działający w BASH (domyślna powłoka w większości dystrybucji Linuksa).
Edytory tekstu
Inne przewodniki, które przeczytałem sugerują, że potrzebujesz edytora tekstu, który zawiera kodowanie kolorów poleceń, a zalecanymi edytorami są VIM lub EMACS.
Kodowanie kolorów jest przyjemne, ponieważ podkreśla polecenia podczas pisania, ale dla absolutnie początkującego można spędzić kilka pierwszych tygodni nauki VIM i EMACS bez pisania pojedynczej linii kodu.
Z dwóch preferuję EMACS, ale szczerze mówiąc wolę używać prostego edytora, takiego jak nano, gedit lub leafpad.
Jeśli piszesz skrypty na swoim komputerze i wiesz, że zawsze będziesz miał dostęp do środowiska graficznego, możesz wybrać edytor najlepiej pasujący do ciebie i może to być graficzne, takie jak GEdit lub edytor, który działa bezpośrednio w terminalu takie jak nano lub vim.
Dla celów tego przewodnika będę używać nano, ponieważ jest zainstalowany natywnie na większości dystrybucji Linuksa i dlatego jest prawdopodobne, że będziesz miał do niego dostęp.
Otwieranie okna terminala
Jeśli używasz dystrybucji Linuksa z graficznym pulpitem, takim jak Linux Mint lub Ubuntu, możesz otworzyć okno terminala, naciskając CTRL + ALT + T.
Gdzie umieścić swoje skrypty
Na potrzeby tego samouczka możesz umieścić swoje skrypty w folderze pod swoim folderem domowym.
W oknie terminala upewnij się, że jesteś w folderze domowym, wpisując następujące polecenie:
cd ~
Polecenie cd oznacza katalog zmian, a tylda (~) jest skrótem do katalogu domowego.
Możesz sprawdzić, czy jesteś we właściwym miejscu, wpisując następujące polecenie:
pwd
Polecenie pwd powie ci twój obecny katalog roboczy (gdzie jesteś w drzewie katalogów). W moim przypadku wrócił / home / gary.
Teraz oczywiście nie będziesz chciał umieszczać skryptów bezpośrednio w folderze macierzystym, więc utwórz folder o nazwie skrypty, wpisując następujące polecenie.
Skrypty mkdir
Przejdź do nowego folderu skryptów, wpisując następujące polecenie:
Twój pierwszy skrypt
Zwyczajowo, gdy uczy się programować, aby stworzyć pierwszy program, po prostu wypisuje słowa "Hello World".
Z poziomu swojego folderu skryptów wpisz następujące polecenie:
nano helloworld.sh
Teraz wprowadź poniższy kod do okna nano.
#! / bin / bash echo "hello world"
Naciśnij CTRL + O, aby zapisać plik, a CTRL + X, aby wyjść z nano.
Sam skrypt składa się w następujący sposób:
#! / Bin / bash musi znajdować się na górze wszystkich pisanych skryptów, ponieważ umożliwia interpretatorom i systemowi operacyjnemu znać sposób obsługi tego pliku. Zasadniczo pamiętaj, aby go umieścić i zapomnieć, dlaczego to robisz.
Druga linia ma jedno polecenie o nazwie echo, które wyprowadza tekst, który następuje bezpośrednio po nim.
Zwróć uwagę, że jeśli chcesz wyświetlić więcej niż jedno słowo, musisz użyć podwójnych cudzysłowów (") wokół słów.
Możesz teraz uruchomić skrypt, wpisując następujące polecenie:
sh helloworld.sh
Powinny się pojawić słowa "hello world".
Innym sposobem uruchamiania skryptów jest:
./helloworld.sh
Jest szansa, że jeśli uruchomisz to polecenie w swoim terminalu od razu, dostaniesz błąd uprawnień.
Aby nadać uprawnienia do uruchamiania skryptu w ten sposób, należy wpisać:
sudo chmod + x helloworld.sh
Co się tam właściwie stało? Dlaczego udało Ci się uruchomić sh helloworld.sh bez zmiany uprawnień, ale uruchomiony ./helloworld.sh spowodował problem?
Pierwsza metoda ładuje interpreter bash, który pobiera helloworld.sh jako dane wejściowe i sprawdza, co z nim zrobić. Tłumacz bash ma już uprawnienia do uruchamiania i po prostu musi uruchamiać polecenia w skrypcie.
Druga metoda pozwala systemowi operacyjnemu określić, co zrobić ze skryptem i dlatego wymaga wykonania bitu wykonywalnego w celu wykonania.
Powyższy skrypt był w porządku, ale co się stanie, jeśli chcesz wyświetlić cudzysłowy?
Istnieją różne sposoby osiągnięcia tego. Na przykład możesz umieścić odwrotny ukośnik przed cudzysłowem w następujący sposób:
echo "cześć świat "
Spowoduje to wygenerowanie wyniku "cześć świat".
Zaczekaj chwilę, a jeśli chcesz wyświetlić "hello world "?
Możesz również uciec od postaci ucieczki
echo "" cześć świat ""
To wytworzy wynik "hello world ".
Teraz wiem, o czym myślisz. Ale naprawdę chcę wyświetlić "" cześć świat ""
Używanie echa z tymi wszystkimi postaciami ucieczki może stać się całkiem głupie. Istnieje alternatywne polecenie, które można użyć o nazwie printf.
Na przykład:
printf '% s n' ' "" hello world ""'
Zauważ, że tekst, który chcemy wyświetlić, znajduje się pomiędzy pojedynczymi cudzysłowami. Polecenie printf wypisuje tekst ze skryptu. % S oznacza, że wyświetli ciąg znaków, a n wyświetli nowy wiersz.
streszczenie
W pierwszej części nie znaleźliśmy wiele, ale mam nadzieję, że Twój pierwszy skrypt działa.
W następnej części zajmiemy się poprawianiem skryptu Hello World do wyświetlania tekstu w różnych kolorach, akceptowania i obsługi parametrów wejściowych, zmiennych i komentowania kodu.