if [[ $PWD =~ '^(/cygdrive/[abd-z])(.*)' ]]; then
head=$match[1]
tail=$match[2]
fi
Same with globs:
set -o extendedglob
if [[ $PWD = (#b)(/cygdrive/[abd-z])(*) ]]; then
head=$match[1]
tail=$match[2]
fi
As globs também têm a vantagem de usar a própria correspondência de padrão de zsh
, em que d-z
corresponde apenas a defghijklmnopqrstuvwxyz
, enquanto =~
usaria as regexps do seu sistema, em que [d-z]
pode corresponder muito mais (como é
ou até mesmo sequências de caracteres como dzs
em locais húngaros). Fazer um set -o rematchpcre
faria com que =~
usasse o PCRE, o que é mais razoável a esse respeito.
Para não coincidir em /cygdrive/foo
:
if [[ $PWD =~ '^(/cygdrive/[abd-z])(/.*)?$' ]]; then
head=$match[1]
tail=$match[2]
fi
Com globs:
set -o extendedglob
if [[ $PWD = (#b)(/cygdrive/[abd-z])(/*|) ]]; then
head=$match[1]
tail=$match[2]
fi