Речь идет о разработке Bash и написании переносимых сценариев Bash, использующих RegEx.
Используя Bash RegEx, на Mac я могу сделать это:
coconut-mac$ a='bananacoconutman'; [[ "$a" =~ banana(.*?)man ]] && echo FOUND ${BASH_REMATCH[1]}
FOUND coconut
Ницца. Полезно во многих местах. Подобно.
Когда я пытаюсь сделать это, это терпит неудачу:
coconut-mac$ a='<title>coconut</title>'; [[ "$a" =~ \<title\>(.*?)\</title\> ]] && echo FOUND ${BASH_REMATCH[1]}
Точно такая же команда отлично работает на пингвине:
coconut-linux$ a='<title>coconut</title>'; [[ "$a" =~ \<title\>(.*?)\</title\> ]] && echo FOUND ${BASH_REMATCH[1]}
FOUND coconut
- Зачем?
- Как это исправить, чтобы сделать скрипт переносимым?
РЕДАКТИРОВАТЬ: На Mac:
OS X version: 10.8.2
Bash version: 4.2.37(2)-release
на Ubuntu 12.04 LTS:
Linux kernel version: 3.2.0-29-generic-pae
Linux version: Ubuntu 12.04.1 LTS
Bash version: 4.2.24(1)-release