0

Can someone help me understand what's wrong with this script (ran in cygwin)?

$ cat myscript.sh
#!/bin/bash
if [[ $myfile =~ (.+)-(.+)\.(.+) ]]; then
    echo "Prefix = ${BASH_REMATCH[1]}"
    echo "Name = ${BASH_REMATCH[2]}"
    echo "Extension = ${BASH_REMATCH[3]}"
else
    echo "NO MATCH"
fi
$ echo $myfile
prefix-name.ext
$ ./myscript.sh
NO MATCH

If I check the pattern matching (without the IF) everything works fine:

$ [[ $myfile =~ (.+)-(.+)\.(.+) ]]; echo $?
0
$ echo "Prefix = ${BASH_REMATCH[1]}"
Prefix = prefix
$ echo "Name = ${BASH_REMATCH[2]}"
Name = name
$ echo "Extension = ${BASH_REMATCH[3]}"
Extension = ext

0 Answers0