var (키보드의 사용자 입력)이 대/소문자를 구분하지 않고 정규식과 일치하는지 확인하는 것이 더 나은지 알고 싶습니다. 나는 다른 가능성이 있다는 것을 압니다. 예 : Y
, N
이 y
는, n
는 Yes
, No
, YES
,배쉬 대/소문자를 구별하지 않는 regex (더 우아한) 방법?
NO
내가 다른 방법을 찾고 검색 :이 목록의 빈 값과 모두 일치하는 정규 표현식을 원한다. 다른 것이 더 좋을지 확실하지 않습니다. 나는 그들을 위해 일하는 몇 가지를 놓을 게.
첫 번째는 비교 자로 모든 설정 작은 "까다로운"이다
#!/bin/bash yesno="null" #any different value for initialization is valid while [[ ! ${yesno^^} =~ ^[YN]$|^YES$|^NO$|^$ ]]; do read -r yesno done
번째는
shopt -s nocasematch
을 사용한다. 그러나 모든 스크립트에 대해 이것을 설정하고 싶지 않기 때문에 되돌릴 수 있는지 확실하지 않습니다.#!/bin/bash yesno="null" #any different value for initialization is valid shopt -s nocasematch while [[ ! ${yesno} =~ ^[yn]$|^yes$|^no$|^$ ]]; do read -r yesno done
감사합니다.
'declare -l yesno; yesno = "예"; echo "$ yesno"'? – Cyrus
'shopt -s nocasematch'를 되돌리려면 :'shopt -u nocasematch'. 참고 :'help shopt' – Cyrus