Поиск по сайту:

Что делает знак процента в строках оболочки Linux?


Когда вы изучаете, как в полной мере использовать оболочку Linux, вам может быть любопытно, как много вы можете манипулировать строками, чтобы получить наилучшие результаты. Имея это в виду, сегодняшний пост SuperUser Q&A содержит ответ на вопрос любопытного читателя.

Сегодняшняя сессия вопросов и ответов проводится благодаря SuperUser — подразделению Stack Exchange, группы веб-сайтов вопросов и ответов, управляемой сообществом.

Вопрос

Читатель SuperUser Ниссим Кауфманн хочет знать, что делает знак процента в строках оболочки Linux:

Что делает знак процента (%) при использовании оболочки Linux? Например:

Что делает знак процента в строках оболочки Linux?

Ответ

У участника SuperUser Марека Роста есть ответ для нас:

Когда знак процента (%) используется в шаблоне $ {variable%substring}, будет возвращено содержимое переменной с кратчайшим вхождением подстроки, удаленной из задней части переменной.

Эта функция поддерживает шаблоны подстановочных знаков, поэтому она принимает звездочку (звездочку) вместо нуля или более символов. Следует отметить, что это специфично для Bash. Другие оболочки Linux не обязательно содержат эту функцию.

Если вы хотите узнать больше о манипулировании строками в Bash, я настоятельно рекомендую прочитать следующую страницу Advanced Bash-Scripting Guide: Глава 10. Манипулирование переменными. Среди множества других полезных функций, она объясняет, например, что делает знак двойного процента (%%).

Я забыл упомянуть, что когда он используется в шаблоне $ ((variable%number)) или $ ((variable1%$variable2)), Символ процента (%) будет действовать как оператор по модулю.

Когда знак процента (%) используется в разных контекстах, его следует распознавать только как обычный символ.

Есть что добавить к объяснению? Отключить звук в комментариях. Хотите узнать больше ответов от других технически подкованных пользователей Stack Exchange? Ознакомьтесь с полной веткой обсуждения здесь.

Изображение предоставлено: скриншоты Linux (Flickr)