To, co nazywa się powyżej, to coś, co nazywamy zmiennymi w większości języków programowania. Ponadto, zbliżając się do podstawowej koncepcji zmiennej, wprowadza się koncepcję, którą nazywamy pisaniem.
Wpisowanie to nazwa oczekiwanego zachowania przechowywania i przypisania zmiennej. Jak to wygląda, kiedy wracamy do wiader?
W małym świecie kubełkowym stworzyliśmy dla naszych programów, wiadra mają nazwy. Otóż to.
Załóżmy teraz, że nasze programy nie mają luksusu posiadania nieskończonej liczby toreb Jetson do ich dyspozycji. Zanim wiadro zostanie nazwane i wypełnione jego zawartością, program musi zdecydować o kształcie i konstytucji każdego dotkniętego wiadra. Wiem, że wydaje się to trochę przesadne, ale jest to zło konieczne. Wszystkie wiadra są związane ich typem.
Jak to wygląda, kiedy wracamy do Bash?
Funkcje, tablice i struny są przechowywane w zmiennych. Bash używa tego, co nazywamy atrybutami, aby oznaczyć zmiany zachowań podczas przypisania. Pomimo tego, że istnieje system modyfikowania zachowania przypisania zmiennych, gdy wszystko sprowadza się do niego, wartości są przechowywane w zmiennych jako ciągi.
W Bash program żyje w celu umieszczenia sznurków w zmienne i wymienić je do późniejszego użycia. Te struny są dostępne do manipulowania przez cały okres życia programu. Program żyje w celu manipulowania strunami.
Tutaj omówimy manipulację strunami Bash w oddechu i jak najwięcej głębokości, aby być dostępnym dla czytelników wszystkich tworzenia i kształtów. Czytaj.
Co to jest manipulacja smyczką w Bash
Manipulacja łańcuchem to operacja na ciągu zmieniającej jego zawartość. W Bash manipulacja ciągami występuje w dwóch formach: manipulacja czystym bashem i manipulacja ciągami za pomocą poleceń zewnętrznych. Tutaj dotkniemy obu rodzajów manipulacji strunami.
Załóżmy, że mamy zmienną w Bash trzymającą ciąg, który chcemy manipulować nazwanym ciągiem. W przypadku, gdy istnieje więcej niż jeden ciąg, nazywamy ciąg stringów, String2,… Możemy również zdecydować się na nazwanie ciągu czegoś bardziej znaczącego niż ciąg, aby promować zrozumienie treści ciągu i zamierzonego użycia.
Conatenate Strings - Lista ciągów w ciągu
W Bash łatwym sposobem na połączenie ciągów jest wymienienie ciągów w porządku. Powstały ciąg to nowy ciąg zawierający wszystkie wymienione ciągami.
$ String1 $ String2…
Przykład: Contagenation String przez wymienianie ciągów w ciągu
string = "one";
string2 = "dwa";
string3 = $ String $ String2;
Echo $ String3
Wyjście
jeden dwa
Lista strun w tablicy
W BASH innym sposobem na połączenie ciągów jest wymienianie ciągów w tablicy i użycie rozszerzenia parametrów w celu rozszerzenia tablicy na połączony ciąg. Jednak w przeciwieństwie do powyższego przykładu usunięcie białej przestrzeni oddzielających elementy tablicy może wymagać dodatkowej pracy.
array ($ strings $ strings2…)
Przykład: Ciąg Containation przez wymienianie ciągów w tablicy
strings = („jeden” „dwa”);
echo $ strings [@]
Wyjście
jeden dwa
Skróć ciąg - Przesuń ciąg w lewo
Jednym ze sposobów skrócenia ciągu jest przesunięcie jego zawartości w lewo. Zawartość sznurka przesunięta w lewo znika, co skutkuje krótszym łańcuchem.
Przykład: Zmiana lewej pętli
string = "abcDefghijklmnopqrstuvwxyz";
dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ String: $ i;
zrobione
Wyjście
ABCDEFGHIJKLMNOPQRSTU VWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXYZ
defghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
FGHIJKLMNOPQRSTUVWXYZ
ghijklmnopqrstuvwxyz
HIJKLMNOPQRSTUVWXYZ
ijklmnopqrstuvwxyz
jklmnopqrstuvwxyz
klmnopqrstuvwxyz
LMNOPQRSTUVWXYZ
mnopqrstuvwxyz
nopqrstuvwxyz
Opqrstuvwxyz
pqrstuvwxyz
Qrstuvwxyz
rstuvwxyz
Stuvwxyz
TUVWXYZ
Uvwxyz
VWXYZ
WXYZ
XYZ
Yz
z
Przesuń ciąg w prawo, zdobądź rozkład łańcucha
Innym sposobem skrócenia ciągu w Bash jest uzyskanie podłańca ciągu. Powstała operacja może być użyta do wdrożenia operacji przesunięcia w prawo, podobnej do powyższej metody.
Przykład: Zmiana prawej pętli
string = "abcDefghijklmnopqrstuvwxyz";
dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ string: 0: $ #string -i;
zrobione
Wyjście
ABCDEFGHIJKLMNOPQRSTU VWXYZ
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVW
ABCDEFGHIJKLMNOPQRSTUV
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMN
ABCDEFGHIJKLM
ABCDEFGHIJKL
ABCDEFGHIJK
ABCDEFGHIJ
ABCDEFGHI
AbcDefgh
ABCDEFG
Alfabet
Abcde
Abcd
ABC
Ab
A
Przykład: piramida pętli zmiany biegów
Dla zabawy połączmy dwa przykłady pętli zmiany powyżej, aby narysować krok w naszym terminalu.
Przykład: Krok pętli zmiany
string = "abcDefghijklmnopqrstuvwxyz";
dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ string: 0: $ #string -i;
zrobione
| tac;
dla i in $ (seq 0 $ (($ #string - 1)));
Do
echo $ String: $ i;
zrobione
Wyjście
A
Ab
ABC
Abcd
Abcde
Alfabet
ABCDEFG
AbcDefgh
ABCDEFGHI
ABCDEFGHIJ
ABCDEFGHIJK
ABCDEFGHIJKL
ABCDEFGHIJKLM
ABCDEFGHIJKLMN
ABCDEFGHIJKLMNO
ABCDEFGHIJKLMNOP
ABCDEFGHIJKLMNOPQ
ABCDEFGHIJKLMNOPQR
ABCDEFGHIJKLMNOPQRS
ABCDEFGHIJKLMNOPQRST
ABCDEFGHIJKLMNOPQRSTU
ABCDEFGHIJKLMNOPQRSTUV
ABCDEFGHIJKLMNOPQRSTUVW
ABCDEFGHIJKLMNOPQRSTUVWX
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTU VWXYZ
ABCDEFGHIJKLMNOPQRSTU VWXYZ
BCDEFGHIJKLMNOPQRSTUVWXYZ
CDEFGHIJKLMNOPQRSTUVWXYZ
defghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
FGHIJKLMNOPQRSTUVWXYZ
ghijklmnopqrstuvwxyz
HIJKLMNOPQRSTUVWXYZ
ijklmnopqrstuvwxyz
jklmnopqrstuvwxyz
klmnopqrstuvwxyz
LMNOPQRSTUVWXYZ
mnopqrstuvwxyz
nopqrstuvwxyz
Opqrstuvwxyz
pqrstuvwxyz
Qrstuvwxyz
rstuvwxyz
Stuvwxyz
TUVWXYZ
Uvwxyz
VWXYZ
WXYZ
XYZ
Yz
z
Kapitalizuj cały ciąg w Bash
W Bash4 lub nowszym możesz wykorzystać znaki do wydruku za pomocą rozszerzenia parametrów w następujący sposób.
$ String ^^
Załóżmy, że wrzucamy pierwsze 10 słów wyjścia z przykładu kroku pętli zmianowej w zmienną zwaną piramidą. Zauważ, że niezmodyfikowane, oczekiwane zachowanie powtórzenia jej treści jest następujące.
Komenda
Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ"
echo $ piramid
Wyjście
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Zauważ, że jak można się spodziewać, nie ma czapek. Wrzućmy to. To znaczy, że wszystkie jej postacie nakładamy.
Komenda
Echo $ Pyramid ^^
Wyjście
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
To było łatwe! A może jeśli chcemy przekonwertować tylko pierwszą literę w ciągu na czapki jak zdanie? Tak możemy! Wszystko, co musimy zrobić, to spróbować nieco mniej trudnego, co jest dokładne, aby być dokładnym.
Kapitalizuj tylko pierwszą literę w ciągu
Może kapitalizacja całego sznurka nie jest techniką manipulacji sznurką bashu, której szukasz. Co jeśli musisz tylko wykorzystać pierwszy list jak zdanie?
Polecenia
Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ"
echo $ Pyramid^
Wyjście
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Załóżmy teraz, że jesteśmy bardziej zainteresowani przekształceniem ciągów w małe litery. Na szczęście istnieje, aby to zrobić czysto; to jest użycie rozszerzenia parametrów.
Konwertuj cały ciąg na małe litery w Bash
Konwertuj ciąg na wszystkie małe litery w Bash za pomocą operatora rozszerzania parametrów podwójnych („,”).
Polecenia
Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ";
echo $ Pyramid;
Echo $ Pyramid ,,
Wyjście
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Konwertuj tylko pierwszą literę w ciągu na małe litery
Konwertuj pierwszy znak w ciągu małej litery w BASH za pomocą operatora rozszerzenia parametrów single-comma („”).
Polecenia
Pyramid = "A AB ABC ABCD ABCDE ABCDEF ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ";
echo $ Pyramid;
Echo $ Pyramid,
Wyjście
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
A AB ABC ABCD ABCDE ABCDEFG ABCDEFGH ABCDEFGHI ABCDEFGHIJ
Przypisz pusty ciąg A i zwróć jego wartość
Często chcesz ustawić awarie pustego ciągu i mieć jego wartość utrzymującą się w całym skrypcie Bash, takim jak przypadek, gdy opcjonalnie akceptuje zmienne ze środowiska. Można to osiągnąć za pomocą rozszerzenia parametrów.
Polecenia
echo [$ str];
echo [$ str: = pusty];
echo [$ str]
Wyjście
[] []
[pusty]
[pusty]
Uwagi: Zakłada się, że STR jest niepodważany
Wymień wzór występujący w ciągu raz w Bash
Mamy sznurek siedzący w zmiennej i chcemy zastąpić pierwsze wystąpienie podłoża. Oto jak.
Podstawowe użycie
$ str/wzór/zamiennik
Polecenia
str = "011011000110100101111001110101111000011010000110100101101110011101000010111
0011000110111101101101 ";
echo $ str;
echo $ str/111/000
Wyjście
01101100011010101111001110101111000011010000110100101101110011101
0000101110011000110110111101101101
0110110001101011000000000010100001000011010000110100101100000000001
00001000011000110110000101101101
Wymień wszystkie wystąpienia wzoru w sznurku w Bash
Mamy ciąg w zmiennej i chcemy zastąpić wszystkie wystąpienia podłoża. Oto jak.
Podstawowe użycie
$ str // wzór/zamiennik
Polecenia
str = "01101100011010010111100111010111100001101000011010010110111001110
1000010111001110110111101101101 ";
echo $ str;
echo $ str // 111/000
Wyjście
011011000110101101110011101011110000110100001101001011011100
11101000010111001100011011111101101101
011011000110101100000000001010000100001101000011010010110000000
00010000100000011000110110000101101101
Jak manipulować ciągami w Bash za pomocą poleceń zewnętrznych
Aby manipulować strunami w Bash za pomocą zewnętrznego polecenia, musimy użyć funkcji, którą zastąpienie instrukcji obsługi bash. Krótko mówiąc, cokolwiek jest wewnątrz $ () lub „jest traktowane jako polecenie i zastąpione na miejscu. Szczerze mówiąc, wolę pierwszy sposób; Możesz jednak użyć jednego z nich. Łatwym sposobem użycia podstawienia dowodzenia jest przypisanie wyniku zastąpienia dowództwa do zmiennej w następujący sposób.
Polecenia
wynik = $ (polecenie)
W przypadku manipulacji ciągami za pomocą zewnętrznego polecenia w Bash musielibyśmy zaakceptować echo łańcucha do polecenia, chyba że przekazanie łańcucha do polecenia jako parametr jest zaakceptowane. Oto, jak powinien wyglądać nowy wynik.
Polecenia
wynik = $ (echo "$ wynik" | polecenie)
Teraz spróbujmy zrobić coś prawdziwego. Jednak zmniejsz łańcuch zawierający słowa do ostatniego słowa w ciągu? W tym przykładzie użyjmy zewnętrznego Gawk poleceń.
Uwagi na temat następujących poleceń. Zróbmy wszystko małych liter i pozbyć się okresów. Cytat jest autorstwa Linus Torvalds. To jest naprawdę popularny cytat.
Polecenia
QUOTE = "Talk jest tani. Pokaż mi kod.";
last_word = $ (echo "$ cytat //./ "| gawk 'print $ (nf)');
echo "$ last_word ,,"
Wyjście
kod
Tutaj omówiliśmy, jak manipulować strunami w sposób czystej bashu, a także korzystać z poleceń zewnętrznych. W przypadku technik manipulacji strunami czystej bash zastosowano funkcję o nazwie Parameter Expansion. Z drugiej strony, w przypadku poleceń zewnętrznych użyto zastąpienia dowodzenia. Przyjmująco, pisząc ten utwór, poprawiłem swoją zdolność do manipulowania strunami w Bash. Mam nadzieję, że ty też zrobiłeś.
Zauważ, że temat tej dyskusji nie był traktowany w całości. Jednak dla tych, którzy chcieliby trochę bardziej majstrować. W przypadku innych manipulacji stringami nie zawartymi w tym artykule możesz skontaktować się ze mną bezpośrednio lub skontaktować się z redaktorem.
To wystarczy manipulacja smyczką, na razie… dzięki,