Нет необходимости разветвлять внешний процесс:
echo "${i##*/}"
Используется «удалить самый длинный совпадающий префикс» расширение параметра .*/
- это шаблон, поэтому он удалит все, начиная с начала строки и до последней косой черты.Если в значении $i
нет косой черты, то оно совпадает с "$i"
.
Это конкретное расширение параметра указано в POSIX и является частью наследстваоригинальная оболочка Борна.Поддерживается во всех оболочках типа Борна ( sh , пепел , тире , ksh , bash , zsh и т. Д.).Многие из многофункциональных оболочек (например, ksh , bash и zsh ) имеют другие расширения, которые могут обрабатывать еще больше, не вовлекая внешние процессы.