;
한 줄에서 두 명령을 결합 할 때 Bash는 항상 두 번째 명령을 실행하기 전에 첫 번째 명령이 끝날 때까지 대기 한다고 가정하는 것이 맞 습니까? 마찬가지로 다른 줄에 두 개의 다른 명령을 포함하는 쉘 스크립트에서 Bash는 두 번째 줄에서 명령을 실행하기 전에 첫 번째 줄의 명령이 끝날 때까지 항상 대기합니까?
이 경우 한 줄 또는 스크립트에서 두 개의 명령을 실행하여 두 번째 명령이 첫 번째 명령이 완료 될 때까지 기다리지 않는 방법이 있습니까?
또한 쉘 스크립트의 다른 행은 ;
또는 &&
?
답변
스크립트의 명령은 기본적으로 순차적으로 실행됩니다.
&
(단일 앰퍼샌드) 로 접미사를 붙여 백그라운드에서 명령을 실행할 수 있습니다 .
별도의 줄에있는 명령은 ;
기본적으로 연결된 명령과 같습니다 . 쉘에 0이 아닌 종료 코드 ( set -e
) 를 중단하도록 지시 하면 스크립트는 모든 명령이 결합 된 것처럼 실행됩니다 &&
.
답변
두 번째 질문에 답하기 위해 &
백그라운드에서 명령을 시작하고 스크립트가 끝나기를 기다리지 않고 계속 진행할 수 있습니다.
commandA & commandB
스크립트 대신 대화식 터미널에서이 fg
명령을 실행하면 백그라운드 명령을 다시 사용 하거나 jobs
백그라운드 작업 목록을 볼 수 있습니다.