Đây là về phát triển Bash và mã hóa các tập lệnh Bash di động sử dụng RegEx .
Sử dụng Bash RegEx, trên máy Mac, tôi có thể làm điều này:
coconut-mac$ a='bananacoconutman'; [[ "$a" =~ banana(.*?)man ]] && echo FOUND ${BASH_REMATCH[1]}
FOUND coconut
Tốt đẹp. Hữu ích ở nhiều nơi. Như.
Khi tôi thử làm điều này, nó thất bại:
coconut-mac$ a='<title>coconut</title>'; [[ "$a" =~ \<title\>(.*?)\</title\> ]] && echo FOUND ${BASH_REMATCH[1]}
Lệnh chính xác tương tự chạy hoàn hảo trên chim cánh cụt:
coconut-linux$ a='<title>coconut</title>'; [[ "$a" =~ \<title\>(.*?)\</title\> ]] && echo FOUND ${BASH_REMATCH[1]}
FOUND coconut
- Tại sao?
- Làm thế nào để sửa nó để làm cho kịch bản di động?
EDIT : Trên máy Mac:
OS X version: 10.8.2
Bash version: 4.2.37(2)-release
trên 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