예를 들어:
mkdir ~/{1,2,3}
디렉토리 를 생성 하고 ~/1
. 이는 다음과 같습니다:~/2
~/3
mkdir ~/1
mkdir ~/2
mrdir ~/3
그러나 다음과 같은 경우에는 동일한 구문이 사용됩니다 CMD < argument >
.
brew {install, update, doctor}
... 쉘 설명에는 말도 안됩니다. 이것은 다음을 의미하지 않습니다:
brew install
brew update
brew doctor
빠르게 스크립트를 만드는 것은 쉽지만,있어야 한다Bash에서 확장 또는 교체를 사용하는 것이 더 쉬운 방법입니다. 내가 무엇을 놓치고 있나요?
실행 Bash 3.2.57(1)-release
대상OS X 10.10.2
답변1
xargs
당신이 원하는 것 같습니다 :
echo install update doctor | xargs -n1 brew
답변2
첫 번째 공백을 탈출하고 나머지 공백을 제거합니다.
$ printf "'%s'\n" brew\ {install,update,doctor}
'brew install'
'brew update'
'brew doctor'
brew
명령인 경우 다음과 같이 작성하세요(공백 없이) .
brew {install,update,doctor}
mkdir 예제와 같습니다:
mkdir {install,update,doctor}
이를 수행하기 위해 외부 프로세스나 파이프가 필요하지 않습니다. 모든 작업은 쉘 내에서 수행할 수 있습니다 bash
.
답변3
어떻습니까(백슬래시에 주의하세요, 매우 중요합니다):
echo brew\ {install,update,doctor}\;| bash
첫 번째 패턴(의 매개변수 echo
)은 다음과 같이 확장됩니다.
echo brew install; brew update; brew doctor;
그런 다음 이는 에코되어 다음과 같은 출력을 생성합니다.
brew install; brew update; brew doctor;
이를 새로운 bash 인스턴스로 전송합니다.