그것은 비교 연산자의 일종 인 것 같습니다. 다음 코드는 (https://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154에서 가져옴)?"= ~"연산자는 쉘 스크립트에서 무엇을합니까?
if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then
elipses_marker="…"
else
elipses_marker="..."
fi
나는 현재는 MinGW에서 작동하는
git-prompt
를 만들기 위해 노력하고있어 및는 MinGW와 함께 제공되는 쉘이 연산자를 지원하지 않는 것
: 난 그냥 대체 할 수있는이 특정한 경우
conditional binary operator expected
syntax error near `=~'
` if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then'
을 elipses_marker="…"
(내 터미널이 유니 코드를 지원한다는 것을 알고 있기 때문에) 블록 전체가 정확히 =~
일까요? 우변 피연산자 정규식이다
backticks에서 grep을 실행할 필요가 없습니다. 'echo $ LC_TYPE | grep -Fq UTF && test "$ TERM"! = linux; 그 다음에 ' –
읽을 수있는 코드를 장려하는 중 ... 하나의'테스트 '와 첫 번째'표현 '을 둘러싼 역 따옴표만으로 더 직관적 인 표현으로 보입니다. (그리고 grep -q는 오류에서도 마찬가지입니다.) :-)하지만 동의합니다. 나는'test'를 너무 자주 사용하는 습관을 가지고 있지만''if :''파이프보다 읽기 쉽다고 생각합니다. – MattBianco
"grep -q가 오류에서도 true"라는 것은 무엇을 의미합니까? –