Когда %
используется в шаблоне, ${variable%substring}
он будет возвращать содержимое variable
с кратчайшим вхождением, substring
удаленным из задней части variable
.
Эта функция поддерживает шаблоны подстановочных знаков - поэтому она принимает звездочку (звездочку) в качестве замены для нуля или более символов.
Следует отметить, что это специфично для Bash - другие оболочки linux не обязательно содержат эту функцию.
Если вы хотите узнать больше о работе со строками в Bash, я настоятельно рекомендую прочитать эту страницу. Среди других полезных функций это, например, объясняет, что делает %%
:)
Изменить: Я забыл упомянуть , что , когда он используется в шаблоне $((variable%number))
или персонаж будет функционировать в качестве оператора по модулю. DavidPostill имеет более конкретные ссылки на документацию в своем ответе.$((variable1%$variable2))
%
Когда %
используется в другом контексте, он должен распознаваться только как обычный символ.
%%
или##
, так как это запоминающееся и достаточно редкое место, чтобы быстро найти нужный раздел.man bash
/##