Коли %використовується в шаблоні, ${variable%substring}він поверне вміст variableз найменшою швидкістю substringвидалення зі зворотної сторони variable.
Ця функція підтримує шаблони підстановки - тому вона приймає зірочку (зірочку) як підміст для нуля або більше символів.
Слід зазначити, що це специфічно для Bash - інші оболонки Linux не обов'язково містять цю функцію.
Якщо ви хочете дізнатися більше про обробку рядків у Bash, я настійно пропоную прочитати цю сторінку. Серед інших зручних функцій він, наприклад, пояснює, що робить %%:)
Змінити: Я забув згадати , що , коли він використовується в шаблоні $((variable%number))або персонаж буде функціонувати в якості оператора по модулю. DavidPostill має більш конкретні посилання на документацію у своїй відповіді.$((variable1%$variable2))%
Якщо %він використовується в іншому контексті, його слід визнавати лише регулярним символом.
%%або##, оскільки це запам'ятовується і досить рідко, щоб швидко знайти потрібний розділ.man bash/##