여러 개의 작은 bash 스크립트(각각의 작은 스크립트는 docker 컨테이너를 실행함)를 실행하는 기본 bash 스크립트가 있지만 두 번째 스크립트는 첫 번째 스크립트 실행이 완료된 후에만 실행되기를 원합니다. 즉, 각 스크립트의 프로세스가 동시에 실행되지 않기를 바랍니다. 예:
1st_script.sh param1 param2 param3
2nd_script.sh param1 param2
온라인 조언이 나에게 효과가 없었습니다. 다음을 사용하여 1st_script의 PID를 얻으려고합니다.
1st_Script & echo $!
ps -p <PID> || <2nd_script>
그런 다음 <1st_Script> & echo $!
PID가 제공되었지만 프로세스가 존재하는지 확인하면 ps -p <PID>
아무것도 없습니다. 1st_script가 .so가 포함된 docker 컨테이너를 실행하기 때문에 실행 중이라는 것을 알고 있습니다 docker ps
. 해당 프로세스도 나열되어야 합니다.ps -p <PID>
1st_Script && 2nd_Script && 3rd_Script && ...
스크립트가 많고 읽을 수 없으므로 옵션이 아닙니다.
답변1
줄 연속은 가독성을 크게 향상시킬 수 있습니다.
script1 && script2 && script3 && scriptn
비교적
script1 \
&& script2 \
&& script3 \
&& scriptn
하지만 문제를 재현할 수 없습니다. 당신의 스크립트가 무엇이라고 생각하게 만드는가?아니요순차적으로 실행하시겠습니까?
나는 두 개의 테스트 스크립트를 만들었습니다. 각각은 다음을 포함합니다.
echo hello
sleep 15s
그러면 다음 중 하나만 포함하는 것이 있습니다.
./script1
./script2
time
다음 출력을 얻기 위해 대기 시간을 측정합니다.
hello
hello
real 0m30.003s
user 0m0.002s
sys 0m0.001s
스크립트가 동시에 실행되는 경우 총 시간은 30초 미만이 됩니다.
당신의 질문은 당신이 원하는 것입니다컨테이너다음 스크립트로 이동하기 전에 실행을 중지하시겠습니까?