2014-01-20 3 views

ответ

5

%.* удаляет последний октет и точка, которая предшествует его. #*. удаляет первый октет и точку, которую следует за. Это предыдущая точка против следующей разности точек, которая объясняет, почему вы меняете точку.

Из bash man page:

${parameter#word}
${parameter##word}

  • Удалить соответствующий шаблон префикса. Слово расширяется, чтобы создать шаблон так же, как при расширении пути. Если шаблон соответствует началу значения параметра, то результатом расширения является расширенное значение параметра с самым коротким совпадающим шаблоном (случай #) или самый длинный шаблон соответствия (случай ##). Если параметр равен @ или *, то в каждый позиционный параметр по очереди применяется шаблон операции , а расширение - это результирующий список. Если параметр представляет собой переменную массива с индексом @ или *, операция удаления шаблона применяется поочередно к каждому члену массива, а расширение - это результирующий список.

${parameter%word}
${parameter%%word}

  • Удалить суффикс соответствие шаблону. Слово расширяется, чтобы создать шаблон так же, как при расширении пути. Если шаблон совпадает с завершающей частью расширенного значения параметра, то результатом расширения является расширенное значение параметра с кратким совпадающим шаблоном (случай %) или самый длинный шаблон соответствия (случай %%). Если параметр равен @ или *, операция по удалению рисунка применяется к каждому позиционному параметру по очереди, а расширение - это результирующий список. Если параметр является переменной массива с индексом @ или *, операция удаления шаблона применяется поочередно к каждому члену массива, а расширение является результирующим списком.
Смежные вопросы