ZSH 버팀대 확장 표시

ZSH 버팀대 확장 표시

중괄호 확장 문의 확장 버전을 표시하는 방법이 있나요?

예를 들어 다음과 같습니다.

$ bundle exec rake db:{drop,create,migrate}

확장 버전이 이것까지 확장되나요?

$ bundle exec rake db:drop
$ bundle exec rake db:create
$ bundle exec rake db:migrate

답변1

글쎄, 넌 언제나 할 수 있어

~  for i (drop create migrate) echo bundle exec rake db:$i
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate

또는

~ echo bundle exec rake db:{drop,create,migrate}
bundle exec rake db:drop db:create db:migrate

답변2

이 3줄로 표시되려면 다음이 필요합니다.

$ print -rl 'bundle exec rake db:'{drop,create,migrate}
bundle exec rake db:drop
bundle exec rake db:create
bundle exec rake db:migrate

x{a,b}y첫 번째 매개변수와 두 번째 매개변수가 {a,b}대체되는 2개의 매개변수를 작성합니다.ab

위의 작업을 수행하려면 파이프로 연결하거나 sh(또는 zsh특정 코드가 없더라도) 다음과 같이 작성할 수 있습니다.zsh

eval 'bundle exec rake db:'{drop,create,migrate}$'\n'

답변3

아니요, 다음으로 확장됩니다.

bundle exec rake db:drop db:create db:migrate

zsh문서 에서 ,버팀대 확장부분:

'foo{xx,yy,zz}bar' 형식의 문자열은 별도의 단어 'fooxxbar', 'fooyybar' 및 'foozzbar'로 확장됩니다. 왼쪽에서 오른쪽 순서를 유지합니다. 이 구문은 중첩될 수 있습니다. 쉼표는 문자 그대로 단어에 포함되도록 인용할 수 있습니다.

관련 정보