Zmienne w skryptach
Część sekcji Podstawy ścieżki Terminal w Coddy. Lekcja 68 z 82.
Zmienne sprawiają, że Twoje skrypty są elastyczne i można ich używać ponownie. Zamiast wpisywać wartości na stałe, możesz przechowywać je w zmiennych i odwoływać się do nich w całym skrypcie.
Aby utworzyć zmienną w skrypcie, użyj tej samej składni, której nauczono cię w terminalu: bez spacji wokół znaku równości. Aby użyć wartości zmiennej, poprzedź jej nazwę znakiem dolara:
#!/bin/bash
greeting="Hello"
name="World"
echo "$greeting, $name!"Ten skrypt wyświetla Hello, World!. Zmienne greeting i name przechowują tekst, który jest podstawiany podczas uruchamiania skryptu.
Zmienne stają się szczególnie przydatne, gdy trzeba użyć tej samej wartości wiele razy. Jeśli odwołujesz się do ścieżki pliku w kilku miejscach, zapisanie jej w zmiennej oznacza, że wystarczy zmienić ją tylko raz:
#!/bin/bash
backup_dir="/home/user/backups"
echo "Creating backup in $backup_dir"
mkdir -p "$backup_dir"Zwróć uwagę na cudzysłowy wokół "$backup_dir". Ujmowanie zmiennych w podwójne cudzysłowy to dobra praktyka, ponieważ pozwala poprawnie obsługiwać ścieżki lub wartości zawierające spacje. Bez cudzysłowów ścieżka taka jak /my documents spowodowałaby błąd polecenia.
Zmienne w skryptach działają tak samo jak w terminalu, ale istnieją tylko podczas działania skryptu. Gdy skrypt się zakończy, te zmienne znikają.
Wyzwanie
ŁatwyUtwórz skrypt powłoki o nazwie intro.sh, który używa zmiennych do wyświetlenia spersonalizowanego komunikatu.
Twój skrypt powinien:
- Zaczynać się od wiersza shebang (
#!/bin/bash) - Tworzyć zmienną o nazwie
languagez wartościąBash - Tworzyć zmienną o nazwie
skillz wartościąscripting - Używać
echo, aby wyświetlić obie zmienne w formacie:Learning Bash scripting!
Ustaw skrypt jako wykonywalny i uruchom go. Wynik powinien wyglądać tak:
Learning Bash scripting!Każdy zapisywany wiersz ujmij w pojedyncze cudzysłowy:
echo 'echo "Hello $name"' >> script.sh. Pojedyncze cudzysłowy zapobiegają zastąpieniu przez powłokę$namepodczas zapisywania pliku, dzięki czemu skrypt zachowuje zmienną i rozwija ją podczas uruchamiania. Podwójne cudzysłowy spowodowałyby natychmiastowe podstawienie wartości.
Podpowiedź: Utwórz skrypt za pomocą
echoz przekierowaniem. Pamiętaj, aby odwoływać się do zmiennych za pomocą$w instrukcji echo, na przykładecho "Learning $language $skill!"
Spróbuj swoich sił
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy
4Katalogi
Utwórz katalogSkopiuj katalogPrzenieś i zmień nazwę kataloguUsuń katalogPodsumowanie — operacje na katalogach7Zawartość plików
Początek i koniecLiczba słówPolecenie sortPolecenie uniqPodstawy grepgrep z opcjamiPowtórka – detektyw tekstu10Projekt analizatora logów
Przegląd projektuPrzeglądanie pliku logów13Podstawy skryptów powłoki
Czym jest skrypt powłokiTworzenie i uruchamianie skryptuZmienne w skryptachDane wejściowe od użytkownika w skryptachInstrukcja warunkowa ifPętla forPętla whilePodsumowanie — zgadywanie liczby2Nawigacja
Wyświetlanie bieżącego kataloguWyświetlanie plikówZmiana kataloguŚcieżki bezwzględne i względneKatalog domowy i głównyPowtórka — znajdź drogę8Przekierowywanie
Standardowe wyjścieNadpisywanie plikuDopisywanie do plikuStandardowe wejścieStandardowe wyjście błędówPodsumowanie — tworzenie dziennika3Pliki
Utwórz plikOdczytaj plikSkopiuj plikPrzenieś i zmień nazwę plikuUsuń plikPodsumowanie — operacje na plikach6Symbole wieloznaczne i wzorce
Symbol wieloznaczny gwiazdkaSymbol wieloznaczny znak zapytaniaSymbole wieloznaczne w nawiasachŁączenie symboli wieloznacznychPowtórka — operacje selektywne9Potoki
Czym jest potokŁączenie dwóch poleceńŁączenie wielu poleceńPotok z grepPodsumowanie – potok danychPoćwicz samodzielnie: Edytor online Terminal