연속 명령 번째 줄에서 명령을

;한 줄에서 두 명령을 결합 할 때 Bash는 항상 두 번째 명령을 실행하기 전에 첫 번째 명령이 끝날 때까지 대기 한다고 가정하는 것이 맞 습니까? 마찬가지로 다른 줄에 두 개의 다른 명령을 포함하는 쉘 스크립트에서 Bash는 두 번째 줄에서 명령을 실행하기 전에 첫 번째 줄의 명령이 끝날 때까지 항상 대기합니까?

이 경우 한 줄 또는 스크립트에서 두 개의 명령을 실행하여 두 번째 명령이 첫 번째 명령이 완료 될 때까지 기다리지 않는 방법이 있습니까?

또한 쉘 스크립트의 다른 행은 ;또는 &&?



답변

스크립트의 명령은 기본적으로 순차적으로 실행됩니다.

&(단일 앰퍼샌드) 로 접미사를 붙여 백그라운드에서 명령을 실행할 수 있습니다 .

별도의 줄에있는 명령은 ;기본적으로 연결된 명령과 같습니다 . 쉘에 0이 아닌 종료 코드 ( set -e) 를 중단하도록 지시 하면 스크립트는 모든 명령이 결합 된 것처럼 실행됩니다 &&.


답변

두 번째 질문에 답하기 위해 &백그라운드에서 명령을 시작하고 스크립트가 끝나기를 기다리지 않고 계속 진행할 수 있습니다.

commandA & commandB

스크립트 대신 대화식 터미널에서이 fg명령을 실행하면 백그라운드 명령을 다시 사용 하거나 jobs백그라운드 작업 목록을 볼 수 있습니다.


답변