[ "$1" != "${1#/}" ] || return 1
Возможно, есть лучший способ (поэтому я и спросил). Этот код отсекает все ведущие /
в $1
и проверяет, что результат не такой же, как $1
.
Расширение параметров оболочкии использование синтаксиса удаления подстроки
${parameter%word}
/Substring Expansion ${parameter:offset:length}
.
"${line%??}" # strip the shortest suffix pattern match the word
"${line::-2}" # strip last 2 characters (`bash 4.2` and above)
"${line: : -2}" # in older you could add spaces between OR
"${line::${#line}-2}"
Использование опции grep
и просмотра -вперед (PCRE):
grep -Po '.*(?=..$)'