를 사용하는 경우 내가 ".A"문자열의 선행 점과 일치 할 말 경기 선행 점 정규식
그래서 내가 입력[[ ".A"= ~^\. ] & &가
헥타르 "HA"에코
[ "A"= ~^\. ]] & &는 "하"에코
헥타르
왜 내가 여기에 같은 결과는 무엇입니까?
를 사용하는 경우 내가 ".A"문자열의 선행 점과 일치 할 말 경기 선행 점 정규식
그래서 내가 입력[[ ".A"= ~^\. ] & &가
헥타르 "HA"에코
[ "A"= ~^\. ]] & &는 "하"에코
헥타르
왜 내가 여기에 같은 결과는 무엇입니까?
아마 bash가 "."을 처리하려고 시도했기 때문일 수 있습니다. \ n \ r과 같은 \ 문자로 입력하십시오.
\ &을 말합니다. 2 개 개의 분리 문자로, 3.0
후 =~
Bash
사이 버전의 일부 호환성 문제가있다
[[ "a" =~ ^\\. ]] && echo ha
그것은 작동한다! 감사! – MagicSea
보십시오. 배쉬에서 =~
를 사용하는 가장 안전한 방법은 VAR에서 RE 패턴을 넣어하는 것입니다
$ pat='^\.foo'
$ [[ .foo =~ $pat ]] && echo yes || echo no
yes
$ [[ foo =~ $pat ]] && echo yes || echo no
no
$
이 E14 on the Bash FAQ page를 참조하십시오.
두 명령을 테스트 한 후 두 번째 명령은 'ha'를 출력하지 않습니다. – jfg956
jfgagne에 동의합니다. 그건 bash의 최신 버전에서 작동합니다 –