Среда программирования UNIX, Керниган и Пайк

Следующая функция добавляет $PWD/к любому относительному пути, прежде чем передать его в _files, что является обычной функцией завершения для файлов.

_absolute_files () {
  local expansion=$PREFIX$SUFFIX; expansion=${(e)expansion}
  if [[ "${expansion%%/#}" != "${expansion:a}" ]]; then
    PREFIX="\$PWD/$PREFIX"
  fi
  _files "$@";
}

Это работает во многих распространенных случаях, включая распознавание путей, начинающихся с ~/и таких как абсолютные, а также путей, выраженных с помощью переменной. Я не думал обо всех возможных взаимодействиях с расширением (, например. подстановочных знаков )и с встраиванием.

-1
16.12.2020, 10:28
0 ответов

Теги

Похожие вопросы