Skip to content

Co robi znak procentowy w ciągach powłoki systemu Linux?

24 de lipiec de 2021
what does the percent sign in linux shell strings do 00

Kiedy jesteś w trakcie uczenia się, jak w pełni korzystać z powłoki Linuksa, możesz zaciekawić się, jak bardzo możesz manipulować łańcuchami, aby uzyskać najlepsze wyniki. Mając to na uwadze, dzisiejszy post z pytaniami i odpowiedziami dla SuperUser zawiera odpowiedź na ciekawe pytanie czytelnika.

Dzisiejsza sesja pytań i odpowiedzi przychodzi do nas dzięki uprzejmości SuperUser — pododdziału Stack Exchange, społecznościowej grupy witryn z pytaniami i odpowiedziami.

Pytanie

Czytnik SuperUser Nissim Kaufmann chce wiedzieć, co robi znak procentu w ciągach powłoki Linuksa:

Co robi znak procentu (%) podczas korzystania z powłoki systemu Linux? Na przykład:

1627136871 488 Co robi znak procentowy w ciagach powloki systemu

Co robi znak procentu w ciągach powłoki systemu Linux?

Odpowiedź

Współtwórca SuperUser, Marek Rost, ma dla nas odpowiedź:

Gdy we wzorze używany jest znak procentu (%) ${zmienna%podciąg}, zwróci zawartość zmiennej z najkrótszym wystąpieniem podciągu usuniętego z tyłu zmiennej.

Ta funkcja obsługuje wzorce wieloznaczne, dlatego akceptuje gwiazdkę (gwiazdkę) jako substytut zero lub więcej znaków. Należy wspomnieć, że jest to specyficzne dla Bash. Inne powłoki Linuksa niekoniecznie zawierają tę funkcję.

Jeśli chcesz dowiedzieć się więcej o manipulowaniu ciągami znaków w Bash, gorąco zachęcam do przeczytania poniższej strony, Advanced Bash-Scripting Guide: Rozdział 10. Manipulowanie zmiennymi. Wśród wielu innych przydatnych funkcji wyjaśnia na przykład, co robi znak podwójnego procentu (%%).

Zapomniałem wspomnieć, że kiedy jest używany we wzorze $((zmienna%liczba)) lub $((zmienna1%$zmienna2)), znak procentu (%) będzie działał jako operator modulo.

Gdy znak procentu (%) jest używany w różnych kontekstach, powinien być rozpoznawany tylko jako zwykły znak.

Masz coś do dodania do wyjaśnienia? Dźwięk w komentarzach. Chcesz przeczytać więcej odpowiedzi od innych doświadczonych technologicznie użytkowników Stack Exchange? Sprawdź pełny wątek dyskusji tutaj.

Źródło obrazu: Zrzuty ekranu z Linuksa (Flickr)

Czy ten post był pomocny?