중괄호 확장 문의 확장 버전을 표시하는 방법이 있나요?
예를 들어 다음과 같습니다.
$ 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개의 매개변수를 작성합니다.a
b
위의 작업을 수행하려면 파이프로 연결하거나 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'로 확장됩니다. 왼쪽에서 오른쪽 순서를 유지합니다. 이 구문은 중첩될 수 있습니다. 쉼표는 문자 그대로 단어에 포함되도록 인용할 수 있습니다.