zsh를 사용하고 있으며 매우 좋아하지만 bash를 올바르게 평가 해야하는 컴파일 스크립트가있는 Android 소스에서 많은 작업을 수행합니다. 이러한 스크립트는 컴파일 전에 소싱해야하며 컴파일 중에 사용되는 환경 변수 및 쉘 기능을 정의해야합니다.
Zsh는 이러한 파일을 소싱 할 수 없으며, emulate bash
공간을 사용할 때마다 쉘 에서 문제가 발생하여 쉘이 작동하지 않게됩니다 (oh-my-zsh를 사용 중일 수 있습니다).
url-quote-magic:24: bad pattern: ( ):/(|/localhost)/*
이 파일을 평가하기 위해 bash로 전환하지 않거나 bash 인스턴스를 호출하고 zsh 세션으로 소싱하는 동안 정의 된 새로운 환경 변수 / 함수를 가져 오는 방법이 있습니까? 아니면 Android에서 작업해야 할 때마다 bash로 전환 할 운명이 있습니까?
편집 : 내 자신의 질문에 대한 답변을 찾았습니다. 다른 쉘을 사용하여 파일을 소싱하는 것은 불가능한 것처럼 보이지만 Android 매크로 파일이 실패하는 경우이 페이지에서 수정되었습니다.
http://nilvec.com/building-cyanogen-from-source/
기본적으로 간단히 설정 unsetopt nomatch
하면 zsh에서 일치하지 않는 와일드 카드에 대한 불평을 중지하도록 요청하므로 스크립트를 완료하는 데 충분합니다. complete
하나의 Android 매크로에 완성 기능을 추가하기 위해 bash internal 명령을 사용하는 경우 여전히 하나의 오류가 남아 있지만 여기서는 절대 중요하지 않습니다.