bash에서 여러 백그라운드 명령을 한 줄로 실행하려면 어떻게 해야 합니까?
일반적으로 다음과 같은 명령을 여러 번 실행합니다.
sleep 2 && sleep 3
또는
sleep 2 ; sleep 3
하나의 명령줄 명령에서 백그라운드로 둘 다 실행하려면 어떻게 해야 합니까?
sleep 2 & && sleep 3 &
작동하지 않습니다.그리고 또한 교체하지 않습니다.&&
와 함께;
할 수 있는 방법이 있습니까?
정확히 어떻게 운영했으면 좋겠습니까?백그라운드에서 시작하여 순차적으로 실행되도록 하려면 다음과 같은 작업을 수행합니다.
{ sleep 2; sleep 3; } &
네가 원한다면sleep 3
다음과 같은 경우에만 실행됩니다.sleep 2
성공한 경우:
sleep 2 && sleep 3 &
반대로 백그라운드에서 병렬로 실행하려면 대신 다음 작업을 수행할 수 있습니다.
sleep 2 & sleep 3 &
그리고 다음과 같은 두 가지 기술을 결합할 수 있습니다.
{ sleep 2; echo first finished; } & { sleep 3; echo second finished; } &
수줍음을 타는 것을 부끄러워하며, 때로는 서로 미묘한 차이가 있기도 하지만, 동일한 작업을 수행하기 위한 다양한 기술이 있습니다.
마지막 버전에 일부 부모님을 추가해야 합니다.
(sleep 2 &) && (sleep 3 &)
아니면 이것도 효과가 있습니다.
(sleep 2 &) ; (sleep 3 &)
추가해야 하는 여러 백그라운드 명령 실행&
각 명령의 끝입니다.ex:(command1 &) && (command2 &) && (command3 &)
위의 답변은 괄호를 사용합니다.Bash도 비슷한 목적으로 중괄호를 사용할 수 있습니다.
{ sleep 2 && sleep 3; } &
대괄호는 구문에 대해 더 까다롭다는 점에 유의하십시오. 뒤에 공백이 있습니다.{
앞자리}
최종 세미콜론이 필요합니다.경우에 따라 새 하위 셸을 포크하지 않기 때문에 브레이스가 더 효율적입니다.이 경우에 저는 그것이 차이를 만들 수 있는지 모르겠습니다.
bash 명령 대체를 사용할 수 있습니다.$(command)
다음과 같이:
$(command1 ; command2) &
stdin 및 stdout은 여전히 상위 프로세스에 연결되어 있으며 적어도 stdout을 리디렉션하는 것은 까다로울 수 있습니다.또는 명령을 한 줄로 묶은 다음 문자열을 다음으로 전달할 수 있습니다.bash
실행을 처리할 새 프로세스를 생성하는 명령입니다.
bash -c "command1 ; command2" &
이 기능은 백그라운드에서 여러 명령을 실행해야 하는 경우 bash 스크립트에서 특히 유용합니다.
이 두 문장은 동등해야 합니다.bash 프로세스는 두 경우 모두 명령(명령 체인) 및&
마지막에 실행을 분리합니다.
이번에는 추가할 수 있습니다.&>/dev/null
이전에&
명령 끝에 적어도 stdout을 리디렉션하고 상위 프로세스의 stdout에 대한 출력을 방지합니다.다음과 같은 것:
bash -c "command1 ; command2" &>/dev/null &
효과:
$(sleep 2 &) && sleep 3 &
또한 다음을 수행할 수 있습니다.
$(sleep 2 && sleep 3) &
저도 같은 임무를 수행하고 있습니다.요 ㅠㅠㅠㅠ(sleep2 ; fg )& sleep3 ; fg
,그건 효과가 있다.그리고 ctrl+c를 두 배로 프리패스하면 두 프로세스가 중지될 수 있습니다.
언급URL : https://stackoverflow.com/questions/14612371/how-do-i-run-multiple-background-commands-in-bash-in-a-single-line
'source' 카테고리의 다른 글
다중 생성자를 사용한 ASP.NET 코어 종속성 주입 (0) | 2023.06.09 |
---|---|
강제로 NA를 도입할 때 경고를 피하는 방법 (0) | 2023.06.09 |
iPhone 시뮬레이터에서 호스트 시스템 자체에 액세스하는 방법 (0) | 2023.06.04 |
각 'when' 블록에 여러 값이 포함된 사례 문장 (0) | 2023.06.04 |
워크북에서 워크시트를 반복하는 방법, openpyxl (0) | 2023.06.04 |