최근에 중괄호를 사용하여 여러 명령을 실행하는 방법을 배웠습니다. 예를 들어 10
다음과 같은 파일을 만들 수 있습니다.
touch {1..10}.txt
또는 이상한 이름의 파일,
touch {1..10..2}
다음과 같은 여러 프로세스를 다시 시작할 수도 있습니다.
systemctl restart app9-{server,client,test}
위 명령은 이름이 지정된 서비스를 다시 시작 app9-server
하고app9-client
app9-test
이제 공백이 포함된 명령이 생겼습니다.
vagrant destroy app9
vagrant up app9
vagrant ssh app9
중괄호를 사용하여 위의 3개 명령을 어떻게 실행할 수 있나요?
나는 노력했다.
vagrant {destroy app9,up app9,ssh app9}
그리고
vagrant {destroy,up,ssh} app9
그러나 그들 중 누구도 실제로 효과가 없었습니다.
누군가 중괄호를 사용하여 이러한 명령을 실행하는 방법을 말해 줄 수 있습니까?
답변1
두 경우 모두 여러 명령을 실행하기 위해 질문에 중괄호를 사용하지 않습니다.
touch {1..10}.txt
10개 파일에 대해 명령을 실행합니다.
touch 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt 10.txt
주문하다
systemctl restart app9-{server,client,test}
여전히 명령은 다음과 같습니다.
systemctl restart app9-server app9-client app9-test
중괄호 확장은 단일 명령에서 하나 이상의 문자열에 대한 간단한 텍스트 확장을 수행하는 데 사용됩니다.
수행하려는 세 가지 작업은 세 가지 개별 명령이어야 합니다. 원하는 경우 루프에서 이 작업을 수행할 수 있습니다.
for cmd in destroy up ssh; do
vagrant "$cmd" app9
done
답변2
노력하다:
eval 'vagrant '{destroy,up,ssh}' app9;'
따옴표를 참고하세요.