중괄호를 사용하여 공백이 포함된 여러 명령 실행

중괄호를 사용하여 공백이 포함된 여러 명령 실행

최근에 중괄호를 사용하여 여러 명령을 실행하는 방법을 배웠습니다. 예를 들어 10다음과 같은 파일을 만들 수 있습니다.

touch {1..10}.txt

또는 이상한 이름의 파일,

touch {1..10..2}

다음과 같은 여러 프로세스를 다시 시작할 수도 있습니다.

systemctl restart app9-{server,client,test}

위 명령은 이름이 지정된 서비스를 다시 시작 app9-server하고app9-clientapp9-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;'

따옴표를 참고하세요.

관련 정보